PASCAL ABS Помогите плиз Составить программу для нахождения произведения двух квадратных матриц произвольного размера.
PASCAL ABS Помогите плиз
Составить программу для нахождения произведения двух квадратных матриц произвольного размера.
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
var
i,j,k,n:integer;
a,b,c:array[,] of integer;
begin
Write('Число строк (столбцов) матрицы: '); Read(n);
SetLength(a,n,n);
SetLength(b,n,n);
SetLength(c,n,n);
Randomize;
Writeln('Матрица A');
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
a[i,j]:=Random(90)+10;
Write(a[i,j]:3)
end;
Writeln
end;
Writeln('Матрица B');
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
b[i,j]:=Random(90)+10;
Write(b[i,j]:3)
end;
Writeln
end;
// умножение и вывод
Writeln('Матрица C');
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
c[i,j]:=0;
for k:=0 to n-1 do c[i,j]:=c[i,j]+a[i,k]*b[k,j];
Write(c[i,j]:6)
end;
Writeln
end;
end.
Тестовое решение
Число строк (столбцов) матрицы: 5
Матрица A
25 81 17 87 40
36 79 25 98 66
90 64 73 30 54
75 12 92 48 84
94 91 71 96 94
Матрица B
38 96 54 10 24
66 47 13 15 81
87 33 35 11 19
48 20 16 40 14
34 94 91 97 64
Матрица C
13311 12268 8030 9012 11262
15705 16158 11420 12142 13334
17271 19733 13641 9101 12607
16806 19656 15838 12010 10568
23559 26400 18834 16044 18336
Гость
//Pascal ABC.NET 3.1 сборка 1256
//Без ввода размерности
Const
n=3;
Var
ma1,ma2,mar:array[1..n,1..n] of integer;
i,j,z:integer;
begin
randomize;
writeln('Matrix 1:');
for i:=1 to n do
begin
for j:=1 to n do
begin
ma1[i,j]:=random(10);
write(ma1[i,j]:4);
end;
writeln;
end;
writeln('Matrix 2:');
for i:=1 to n do
begin
for j:=1 to n do
begin
ma2[i,j]:=random(10);
write(ma2[i,j]:4);
end;
writeln;
end;
writeln('Final matrix:');
for i:=1 to n do
begin
for j:=1 to n do
begin
for z:=1 to n do
mar[i,j]:=mar[i,j]+ma2[z,j]*ma1[i,z];
write(mar[i,j]:4);
end;
writeln;
end;
end.
//C вводом размерности
Var
ma1,ma2,mar:array[,] of integer;
i,j,z,n:integer;
begin
randomize;
readln(n);
setlength(ma1,n,n);
setlength(ma2,n,n);
setlength(mar,n,n);
writeln('Matrix 1:');
for i:=0 to n-1 do
begin
for j:=0 to n-1 do
begin
ma1[i,j]:=random(10);
write(ma1[i,j]:4);
end;
writeln;
end;
writeln('Matrix 2:');
for i:=0 to n-1 do
begin
for j:=0 to n-1 do
begin
ma2[i,j]:=random(10);
write(ma2[i,j]:4);
end;
writeln;
end;
writeln('Final matrix:');
for i:=0 to n-1 do
begin
for j:=0 to n-1 do
begin
for z:=0 to n-1 do
mar[i,j]:=mar[i,j]+ma2[z,j]*ma1[i,z];
write(mar[i,j]:4);
end;
writeln;
end;
end.
Не нашли ответ?
Похожие вопросы