uses crt;
type matr=array[1..20,1..20] of integer;
proc=procedure(m:matr;n:byte);
procedure Glav(m:matr;n:byte);
var i:byte;
begin
writeln('Главная диагональ :');
for i:=1 to n do
write(m[i,i]:3,' ');
writeln;
writeln;
end;
procedure Vyvod(m:matr;Gl:proc;n:byte);
begin
Gl(m,n);
end;
var a:matr;
n,i,j:byte;
begin
clrscr;
randomize;
repeat
write('Размер матрицы до 20 n=');
readln(n);
until n in [1..20];
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(40)+10;
write(a[i,j]:3,' ');
end;
writeln;
end;
writeln;
Vyvod(a,Glav,n);
readln
end.