Ho provato a modificare ancora la procedura ProdottoDiMatriciUsandoRecord, introducendo tre cicli while concatenati relativi rispettivamente alle variabili c,i,j e ciascuno racchiudente l'altro e poi ho inserito un istruzione goto in quella relativa alla variabile i, dopo averla incrementata, in modo da impedire che nel calcolo degli elementi di p(matrice prodotto) vengano sommati i prodotti dei corrispondenti elementi di tutta l'intera matrice e non solo la singola riga e colonna selezionata. La procedura così modificata è la seguente:
Tuttavia il risultato non è ancora una la matrice prodotto!!!codice:procedure ProdottoDiMatriciUsandoRecord( a : mat; b : mat ; var p : mat); begin 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 l 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; end; i:=i+1; goto 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 }![]()

