Код
program kursovaya;
Uses crt;
Const amax=50; bmax=50;
Type massiv = array [1..amax,1..bmax] of real;
var
a1, b1, a2, b2, a3, b3, a4, b4, i, j, k: integer;
s, l: real;
m1, m2, m3, m4: massiv;
Procedure input_array (a,b: integer; var mas: massiv);
var i,j: integer;
begin
for i:=1 to a do
for j:=1 to b do
begin
randomize;
for i:=1 to a do
for j:=1 to b do
mas[i,j]:=random(50);
end;
end; {input_array}
Procedure out_array (a, b:integer; mas: massiv);
var i, j: integer;
begin
write('Matrica ',a:2); writeln(' X',b:2);
for i:=1 to a do
begin
writeln;
for j:=1 to b do
write(mas[i,j]:4:0);
end;
writeln;
end; {out_array}
Begin
clrscr;
Writeln('Vvedite matricu 1');
Repeat
Write('Vvedite kolichestvo strok matrici m1 <= ' ,amax:2);
write(', i = ');
readln(a1);
Write('Vvedite kolichestvo stolbcov matrici m1 <= ',bmax:2);
write(', j = ');
readln(b1);
Until (a1<=amax) and (b1<=bmax);
input_array (a1,b1,m1);
out_array (a1,b1,m1);
readln;
Writeln('Vvedite matricu 2');
Repeat
Write('Vvedite kolichestvo strok matrici m2 <= ' ,amax:2);
write(', i = ');
readln(a2);
Write('Vvedite kolichestvo stolbcov matrici m2 <= ',bmax:2);
write(', j = ');
readln(b2);
Until (a2<=amax) and (b2<=bmax);
input_array (a2,b2,m2);
out_array (a2,b2,m2);
readln;
Writeln('Vvedite matricu 3');
Repeat
Write('Vvedite kolichestvo strok matrici m3 <= ' ,amax:2);
write(', i = ');
readln(a3);
Write('Vvedite kolichestvo stolbcov matrici m3 <= ',bmax:2);
write(', j = ');
readln(b3);
Until (a3<=amax) and (b3<=bmax);
input_array (a3,b3,m3);
out_array (a3,b3,m3);
readln;
Writeln('Vvedite matricu 4');
Repeat
Write('Vvedite kolichestvo strok matrici m4 <= ' ,amax:2);
write(', i = ');
readln(a4);
Write('Vvedite kolichestvo stolbcov matrici m4 <= ',bmax:2);
write(', j = ');
readln(b4);
Until (a4<=amax) and (b4<=bmax);
input_array (a4,b4,m4);
out_array (a4,b4,m4);
readln;
writeln (a1, b1, a2, b2, a3, b3, a4, b4); {vse [i,j]}
for i:=1 to a1 do
for j:=1 to b2 do
begin
s:=0; {umnogenie matric}
for k:=1 to a1 do
s:=s+m1[i,k]*m2[k,j];
m4[i,j]:=s;
end;
for i:=1 to a1 do
begin
writeln;
for j:=1 to b2 do
write(m4[i,j]:4:0, ' ');
end;
writeln;
writeln;
begin
l:=0;
for i:=1 to a1 do
l:=l+m4[i,i]; {summa el-tov na glavnoy diagonali}
end;
writeln(l:4:0);
readln;
readln;
End.