Il programma corretto è il seguente:
codice:
program SommaDiDuePolinomi(input,output);
label 99;
const bell=07;
n=10;
type termine = record
coeff : real;
esp : integer;
end;
pol=array[1..n]of termine;
var p,pol1,pol2,polsomma : pol;
m,c1,c2 : integer;
procedure leggipolinomio( var p :pol; var c : integer; k : integer);
var i : integer;
begin
if k>n
then begin
writeln(chr(bell),'Errore nei dati di ingresso! - STOP -');
goto 99
end
else
writeln('Fornire il polinomio in ingresso: ');
writeln;
for i:=1 to k
do begin
readln(p[i].coeff);
readln(p[i].esp);
end;
readln(c);
writeln;
for i:=1 to k
do write((p[i].coeff):2:2,' * X^ ',(p[i].esp):2,' + ');
writeln(c,' = 0');
end;(* fine procedura leggipolinomio *)
procedure Somma( var polsomma : pol; c1,c2 : integer; pol1,pol2 : pol);
var i,d : integer;
begin
for i:=1 to m
do begin
polsomma[i].coeff:=pol1[i].coeff+pol2[i].coeff;
polsomma[i].esp:=pol1[i].esp;
end;
d:=c1+c2;
writeln;
writeln('Il polinomio somma e'': ');
writeln;
for i:=1 to m
do write((polsomma[i].coeff):2:2,' * X^ ',(polsomma[i].esp):2,' + ');
writeln(d,' = 0');
end;(* fine procedura Somma *)
(*Corpo del programma *)
begin
writeln('------------------ Dati di ingresso ----------------------------');
writeln;
write('Fornire il grado dei polinomi: ');
readln(m);
writeln;
leggipolinomio(pol1,c1,m);
writeln;
leggipolinomio(pol2,c2,m);
Somma(polsomma,c1,c2,pol1,pol2);
99 :
readln;
end.
Grazie a tutti. Ciao!!!