uses crt;
const n=4;
type matr = array [1..n, 1..n] of real;
procedure Vvod(var m:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
m[i,j]:=5*random;
end;
procedure Vyvod(var m:matr;k:byte;s:string);
var i,j:byte;
begin
writeln('Матрица ',s);
for i:=1 to n do
begin
for j:=1 to n do
write(m[i,j]:k:2);
writeln;
end;
end;
procedure UmnMatr(m1,m2:matr;var m3:matr);
var k,i,j:integer;
begin
for k:=1 to n do
for j:=1 to n do
begin
m3[k,j]:=0;
for i:=1 to n do
m3[k,j]:=m3[k,j]+m1[k,i]*m2[i,j];
end;
end;
var A,B,C,D,F,R,m1,m2,m3:Matr;
begin
clrscr;
randomize;
Vvod(A);
Vvod(B);
Vvod(C);
Vvod(D);
Vvod(F);
Vyvod(A,5,'A');
Vyvod(B,5,'B');
Vyvod(C,5,'C');
Vyvod(D,5,'D');
Vyvod(F,5,'F');
write('Press Enter...');
readln;
Vyvod(D,5,'D');
UmnMatr(A,B,m1);
UmnMatr(m1,C,m2);
UmnMatr(m2,D,m3);
UmnMatr(m3,F,R);
Vyvod(R,9,'R=A*B*C*D*F');
readln
end.