Умножение матриц
Программа предназначена для умножения двух согласованных матриц, т.е. таких матриц, у которых число столбцов первой равно числу строк второй. При умножении матрицы А m x n на матрицу Вn x k получается матрица Сm x k:
· = ,
элементы cij которой вычисляются по формуле
cij = ai 1 b 1 j + ai 2 b 2 j + … + ain bnj, j = 1, 2, …, m,
т.е. для получения элемента cij, расположенного в i -й строке и j -м столбце матрицы С, надо элементы i -й строки матрицы А умножить на соответствующие элементы j -го столбца матрицы В и полученные произведения сложить.
П р о г р а м м а
Program UMN_MATRIX;
const nmax = 10;
var A,B,C: array [1..nmax,1..nmax] of Double;
i,j,k,p,m,n:integer;
s:double;
Begin
writeln('программа умножения матрицы А[n*m] на матрицу B[m*p]');
writeln;
write('введите число строк 1-й матрицы (А): n=');
readln(n);
write('введите число столбцов матрицы А: m=');
readln(m);
write('введите число столбцов 2-й матрицы (В): p=');
readln(p);
writeln('ввод матрицы А:');
for i:=1 to n do
for j:=1 to m do
Begin
write('введите A[',i,',',j,']=');
readln(A[i,j]);
end;
writeln('ввод матрицы B:');
for i:=1 to m do
for j:=1 to p do
Begin
write('введите B[',i,',',j,']=');
readln(B[i,j]);
end;
{вычисление матрицы С=АВ}
for i:=1 to n do
for j:=1 to p do
Begin
s:=0;
for k:=1 to m do
s:=s+A[i,k]*B[k,j];
C[i,j]:=s;
end;
writeln;
writeln(' Р Е З У Л Ь Т А Т');
for i:=1 to n do
Begin
for j:=1 to p do
write(C[i,j]:8:2);
writeln;
end;
readln;
end.