TP 4restart;Mise en place du corps Kp:=3;m:=5;P:=X^5+X^4+X^2+1; alias(alpha=RootOf(P,X) mod p);#d\303\251finit l'extension K=F_p[alpha] de degr\303\251 mp^m;Power(alpha,p^m-1) mod p ;Power(alpha,(p^m-1)/2) mod p;n:=p^m-1;T:=Array(0..n-1,i->Power(alpha,i) mod p):LD:=proc(x) global T,n; local i; for i from 0 to n-1 do if T[i]=x then return i end if; end do; FAILend proc:F:=i->p*i mod n;Orb:=proc(i::nonnegint)description "calcule les classes cyclotomipues";global n;local Omega,j;if i>=n then error "mauvais argument" end if;Omega:=[];j:=i; do Omega:=[op(Omega),j]; j:=F(j); if member(j,Omega) then return Omega end if; end do; FAIL;end proc:Orb(6);Construction du code BCHla distance apparente du code BCHdelta:=8; L:=[seq(Orb(i),i=1..delta-1)];J :=convert({op(map(op,L))},list);les racines du coderac:=map(i -> T[i],J); le polyn\303\264me g\303\251n\303\251rateurg:=sort(Expand(mul(X-r,r in rac)) mod p,X);la dimensionk:=n-degree(g,X);le nombre de mots du codep^k;