A questo punto pubblico l'intero programma sin qui elaborato nella speranza che qualcuno sia in grado di segnalarmi gli errori commessi:
codice:
program CalcoloProdottoDiDueMatriciUsandoRecord(input,output);
label 1,99;
const n=10;
bell=07;
type termine= record
riga: integer;
colonna: integer;
val: real;
end;
mat= array[1..n*n]of termine;
var a,b,p,q : mat;
i,j,c,h,k,l : integer;
procedure ScriviMatriceUsandoRecord( var q : mat );
begin
writeln('Inserire gli elementi della matrice ciascuno separato da <INVIO>:');
writeln;
for c:=1 to h
do begin
readln(q[c].riga);
readln(q[c].colonna);
readln(q[c].val);
end;
writeln;
writeln;
writeln('La matrice e'':');
writeln;
writeln;
for i:=1 to l
do begin
for j:=1 to l
do for c:=1 to h
do if(q[c].riga=i)and(q[c].colonna=j)
then write(' ',(q[c]).val:2:2,' ');
writeln;
end;
end;{ fine procedura ScriviMatriceUsandoRecord }
procedure ProdottoDiMatriciUsandoRecord( a : mat; b : mat ; var p : mat);
begin
c:=1;
i:=1;
j:=1;
while(c>=1)and(c<=h)
do begin
while(i>=1)and(i<=l)
do begin
while(j>=1)and(j<=l)
do begin
p[c].riga:=i;
p[c].colonna:=j;
p[c].val:=0;
for k:=1 to h
do if(a[k].riga=i)and(b[k].colonna=j)and(a[k].colonna=b[k].riga)
then p[c].val:=p[c].val+(a[k].val)*(b[k].val);
j:=j+1;
if j<=l
then goto 1;
end;
i:=i+1;
j:=1;
end;
1 : c:=c+1;
end;
writeln;
writeln;
writeln('La matrice prodotto risultante e'':');
writeln;
writeln;
for i:=1 to l
do begin
for j:=1 to l
do for c:=1 to h
do if(p[c].riga=i)and(p[c].colonna=j)
then write(' ',(p[c]).val:4:2,' ');
writeln;
end;
end;{ fine procedura ProdottoDiMatriciUsandoRecord }
{ Corpo del programma }
begin
writeln('-------------------------- Dati di ingresso -----------------------------');
writeln;
writeln;
write('Fornire la dimensione delle due matrici quadrate di ingresso a e b: ');
readln(l);
h:=l*l;
writeln;
if l>10 then begin
writeln(chr(bell),'Errore nei dati di ingresso! - STOP -');
goto 99;
end
else begin
ScriviMatriceUsandoRecord(a);
writeln;
ScriviMatriceUsandoRecord(b);
ProdottoDiMatriciUsandoRecord(a,b,p)
end;
99 :
readln;
end.
Spero solo che questi miei ragionamenti non cadano nel vuoto. Ciao e grazie a tutti!!!