uses crt;
const n=4;
type matr=array[1..n,1..n] of integer;
procedure Vvod(var a:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(25);
end;
procedure Vyvod(var a:matr; c:string;cl:byte);
var i,j:byte;
begin
textcolor(cl);
write('Матрица ',c);
for i:=1 to n do
begin
gotoXY(20,whereY);
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
end;
procedure Summa(a,b:matr; var c:matr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
c[i,j]:=a[i,j]+b[i,j];
end;
var a,b,c,d,m1,m2,m:matr;
begin
clrscr;
randomize;
Vvod(a);
Vvod(b);
Vvod(c);
Vvod(d);
Vyvod(a,'A',10);
Vyvod(b,'B',11);
Vyvod(c,'C',14);
Vyvod(d,'D',13);
Summa(a,b,m1);
Summa(c,d,m2);
Summa(m1,m2,m);
Vyvod(m,'M=A+B+C+D',12);
textcolor(15);
readln
end.