// PascalABC.NET 3.2, сборка 1387 от 20.02.2017
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк/столбцов в матрице:');
Writeln('*** Матрица А ***');
var a:=MatrRandom(n,n,-50,50); a.Println(4);
Writeln('*** Матрица B ***');
var b:=MatrRandom(n,n,-50,50); b.Println(4);
Writeln('*** Матрица C ***');
var c:=MatrRandom(n,n,-50,50); c.Println(4);
Writeln(4*a.ColCount*'-');
Writeln('*** (|A|+|B|)x|C| ***');
var t:=new integer[n,n]; // временная иатрица для суммы
for var i:=0 to n-1 do
for var j:=0 to n-1 do
t[i,j]:=a[i,j]+b[i,j]; // сумма матриц
var r:=new integer[n,n]; // матрица-результат
for var i:=0 to n-1 do
for var j:=0 to n-1 do begin
var s:=0;
for var k:=0 to n-1 do s+=t[i,k]*c[k,j];
r[i,j]:=s
end;
r.Println(8)
end.
Пример
Количество строк/столбцов в матрице: 6
*** Матрица А ***
32 -26 27 -45 -48 38
-40 -5 -20 -26 23 27
0 33 1 -38 -42 14
11 1 33 43 -43 -30
-11 15 -8 -19 14 36
16 24 -34 -33 33 22
*** Матрица B ***
-20 42 -10 10 -38 27
-30 18 -17 -43 22 12
-8 -45 17 -45 34 45
-12 39 -34 6 17 -12
-5 30 31 -5 8 49
10 -17 -50 29 32 -34
*** Матрица C ***
-26 -49 -12 -45 23 -10
38 -19 43 31 39 9
-32 10 41 -29 29 44
6 24 -25 -49 -36 -18
47 25 -41 -16 -3 -11
12 13 -27 1 31 33
------------------------
*** (|A|+|B|)x|C| ***
-3720 -2867 3887 2619 4926 4493
5667 2789 -1291 7326 1382 1223
-990 -625 1128 3720 4711 4293
146 -741 2666 -713 -1480 -1656
3300 1238 473 2357 5487 4572
5165 -874 -5696 627 -1988 -4932