Решите пожалуйста задачу:Заданы две целочисленные матрицы 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы