Решите пожалуйста задачу:Заданы две целочисленные матрицы A и B. Матрица A состоит из N строк и M столбцов, Матрица B состоит из M строк и P столбцов. Требуется вычислить произведение данных матриц A*B.язык паскаль
Решите пожалуйста задачу:Заданы две целочисленные матрицы A и B. Матрица A состоит из N строк и M столбцов, Матрица B состоит из M строк и P столбцов. Требуется вычислить произведение данных матриц A*B.язык паскаль
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
type
Matrix=array[,] of integer;
procedure MatPrint(a:Matrix; w:integer);
begin
for var i:=0 to Length(a,0)-1 do begin
for var j:=0 to Length(a,1)-1 do Write(a[i,j]:w);
Writeln
end
end;
procedure MatProd(a,b,c:Matrix);
begin
for var i:=0 to Length(a,0)-1 do
for var j:=0 to Length(b,1)-1 do begin
var s:=0;
for var k:=0 to Length(a,1)-1 do s+=a[i,k]*b[k,j];
c[i,j]:=s
end
end;
begin
var a,b,c:Matrix;
var m,n,p:integer;
Write('Число строк матрицы А: '); Read(n);
Write('Число столбцов матрицы А и строк матрицы В: '); Read(m);
Write('Число столбцов матрицы В: '); Read(p);
a:=MatrixRandom(n,m,-50,50);
Writeln('Матрица А'); MatPrint(a,4);
b:=MatrixRandom(m,p,-50,50);
Writeln('Матрица B'); MatPrint(b,4);
SetLength(c,n,p);
Writeln('Матрица C');
MatProd(a,b,c);
MatPrint(c,7)
end.
Тестовое решение:
Число строк матрицы А: 4
Число столбцов матрицы А и строк матрицы В: 8
Число столбцов матрицы В: 7
Матрица А
33 -30 20 7 1 5 10 -47
-6 -1 -22 6 -33 41 4 -1
-10 -45 -16 6 -13 9 1 37
5 37 15 -48 42 -19 1 26
Матрица B
-19 42 -14 -36 38 -18 -41
-24 -20 26 -50 -36 -5 -32
-1 5 -43 15 11 49 0
-44 -35 -27 20 33 -49 14
40 7 -38 -37 48 2 -26
-24 5 -11 12 -43 47 -42
-24 11 8 -13 -9 -13 -12
-41 46 -24 20 3 -25 -25
Матрица C
1372 -179 -1176 -295 2387 1475 524
-2463 -580 1701 1697 -3622 575 -525
-1255 1857 -989 3806 353 -1214 957
2160 2631 -460 -4040 341 1340 -3017
Не нашли ответ?
Похожие вопросы