Program perkalian_matriks;
uses wincrt;
var
M1 : array[1..20, 1..20] of longint;
M2 : array[1..20, 1..20] of longint;
M3 : array[1..20, 1..20] of longint;
n : array[1..2] of integer;
m : array[1..2] of integer;
i, j,
x, y, k, l : integer;
begin
clrscr;
for k
:= 1 to 2 do begin
write('Banyak baris matriks ke-', k, ' : ');
readln(m[k]);
write('Banyak kolom matriks ke-', k, ' : ');
readln(n[k]);
end;
if
(n[1] <> m[2]) then
writeln('Tidak bisa dikalikan!')
else
begin
writeln('Matriks pertama : ');
y
:= 6;
for
i := 1 to m[1] do begin
x := 8;
for j := 1 to n[1] do begin
gotoxy(x,y);
readln(M1[i,j]);
x := x + 8;
end;
y := y + 1;
end;
writeln('Matriks kedua : ');
y
:= y + 1;
for
i := 1 to m[2] do begin
x := 8;
for j := 1 to n[2] do begin
gotoxy(x,y);
readln(M2[i,j]);
x := x + 8;
end;
y := y + 1;
end;
writeln('Proses perkalian');
y
:= y + 1;
for
i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
M3[i,j] := 0;
for l := 1 to n[1] do begin;
M3[i,j] := M3[i,j] +
(M1[i,l] * M2[l,j]);
gotoxy(x,y);
write(M1[i,l], ' . ', M2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;
end;
x := x + 15;
end;
y := y + 1;
end;
y
:= y + 1;
for
i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
for l := 1 to n[1] do begin;
gotoxy(x,y);
write(M1[i,l] * M2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;
end;
x := x + 15;
end;
y := y + 1;
end;
writeln;
writeln('Perkalian Matriks : ');
for
i := 1 to m[1] do begin
for j := 1 to n[2] do
write(M3[i,j]:8);
writeln;
end;
end;
readln;end.
0 komentar:
Posting Komentar