Seorang teman meminta untuk dibuatkan source code perkalian dua matriks dengan pascal. Berikut hasil yang di dapat. (Mungkin masih agak kurang optimal.)
Program PerkalianMatriks; Uses crt; Var MatA, MatB, MatAns : array [1..100, 1..100] of longint; mA, nA, mB, nB : integer; //baris dan kolom i, j, k : integer; //indeks pengulangan Begin write('Masukkan jumlah baris untuk matriks A = '); readln(mA); write('Masukkan jumlah kolom untuk matriks A = '); readln(nA); write('Masukkan jumlah baris untuk matriks B = '); readln(mB); write('Masukkan jumlah kolom untuk matriks B = '); readln(nB); writeln; if (nA = mB) then begin //Input data matriks A writeln('Input data matriks A'); for i := 1 to mA do for j := 1 to nA do begin write('MatA [', i:2, ',', j:2, '] = '); readln(MatA[i,j]); end; writeln; //Input data matriks B writeln('Input data matriks B'); for i := 1 to mB do for j := 1 to nB do begin write('MatB [', i:2, ',', j:2, '] = '); readln(MatB[i,j]); end; writeln; //View data matriks A writeln('Matriks A ='); for i := 1 to mA do begin for j := 1 to nA do begin write(MatA[i,j]:4); end; writeln; end; //View data matriks B writeln('Matriks B ='); for i := 1 to mB do begin for j := 1 to nB do begin write(MatB[i,j]:4); end; writeln; end; writeln; write('Tekan [Enter] untuk memulai perhitungan...'); readln; //Perkalian Matriks for i := 1 to mA do begin for j := 1 to nB do begin MatAns[i, j] := 0; //inisialisasi (pengosongan matriks jawaban) for k := 1 to nA do begin MatAns[i, j] := MatAns[i, j] + (MatA[i, k] * MatB[k, j]); end; end; end; //View data matriks answer writeln('Matriks Ans = MatA x MatB = '); for i := 1 to mA do begin for j := 1 to nB do begin write(MatAns[i,j]:4); end; writeln; end; readln; end else begin writeln('Perkalian matriks gagal: Kolom MatA harus sama dengan Baris MatB'); end; End.