Решите : заданы две целочисленные матрицы 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.