Le problème est ici la mise à jour du degré.
procedure addpoly(P, Q : polynome; var R : polynome);
var i, deg : integer;
begin
if P.degre>Q.degre then deg:=P.degre
else if Q.degre>P.degre then deg:=Q.degre
else
while ( (P.coef[deg]+Q.coef[deg]) = 0) and (deg<>0) do
deg:=deg-1;
R.degre:=deg;
for i:=0 to R.degre do
R.coef[i]:=P.coef[i]+Q.coef[i];
end;