
.Цель: Разработать алгоритм и программу решения прикладной задачи – умножение мартиц.
Задача: Умножить матрицу А с размерностью m × n на матрицу В с размерностью n × l .
Задача: Умножить матрицу А с размерностью m × n на матрицу В с размерностью n × l .

const
n=3;
m=3;
Type
Massiv= array [1..m,1..n] of integer;
var
M1,M2,M3:Massiv;
i,j,k:integer;
a,b:integer;
begin
randomize;
For i:=1 to m do
For j:=1 to n do begin
M1[i,j]:=Random(4);
M2[i,j]:=Random(4);
end;
for i:=1 to m do
for j:=1 to n do begin
M3[i,j]:=0;
for k:=1 to n do
M3[i,j]:=M3[i,j]+M1[i,k]*M2[k,j];
end;
Image1.canvas.Rectangle(0,0,Image1.Width,Image1.Height);
a:=Trunc(Image1.Width/10);
b:=Trunc(Image1.Height/10);
For i:=1 to m do
For j:=1 to n do begin
Image1.canvas.Rectangle(a*j,b*i,(a*j)+a,(b*i)+b);
Image1.Canvas.TextOut( a*j,b*i,IntToStr(M1[i,j]));
end;
For i:=1 to m do
For j:=1 to n do begin
Image1.canvas.Rectangle((a*j)+230,b*i,((a*j)+a)+230,(b*i)+b);
Image1.Canvas.TextOut((a*j)+230,b*i,IntToStr(M2[i,j]));
end;
For i:=1 to m do
For j:=1 to n do begin
Image1.canvas.Rectangle((a*j)+150,b*i+200,((a*j)+a)+150,((b*i)+b)+200);
Image1.Canvas.TextOut((a*j)+150,b*i+200,IntToStr(M3[i,j]));
end;
end;
n=3;
m=3;
Type
Massiv= array [1..m,1..n] of integer;
var
M1,M2,M3:Massiv;
i,j,k:integer;
a,b:integer;
begin
randomize;
For i:=1 to m do
For j:=1 to n do begin
M1[i,j]:=Random(4);
M2[i,j]:=Random(4);
end;
for i:=1 to m do
for j:=1 to n do begin
M3[i,j]:=0;
for k:=1 to n do
M3[i,j]:=M3[i,j]+M1[i,k]*M2[k,j];
end;
Image1.canvas.Rectangle(0,0,Image1.Width,Image1.Height);
a:=Trunc(Image1.Width/10);
b:=Trunc(Image1.Height/10);
For i:=1 to m do
For j:=1 to n do begin
Image1.canvas.Rectangle(a*j,b*i,(a*j)+a,(b*i)+b);
Image1.Canvas.TextOut( a*j,b*i,IntToStr(M1[i,j]));
end;
For i:=1 to m do
For j:=1 to n do begin
Image1.canvas.Rectangle((a*j)+230,b*i,((a*j)+a)+230,(b*i)+b);
Image1.Canvas.TextOut((a*j)+230,b*i,IntToStr(M2[i,j]));
end;
For i:=1 to m do
For j:=1 to n do begin
Image1.canvas.Rectangle((a*j)+150,b*i+200,((a*j)+a)+150,((b*i)+b)+200);
Image1.Canvas.TextOut((a*j)+150,b*i+200,IntToStr(M3[i,j]));
end;
end;