С помощью подпрограммы с параметром процедурного типа вывести на экран главную и побочную диагонали матрицы — Pascal(Паскаль)

uses crt;
type matr=array[1..20,1..20] of integer;
     proc=procedure(m:matr;n:byte);
{$F+}
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 Pob(m:matr;n:byte);
var i:byte;
begin
writeln('Побочная диагональ:');
for i:=1 to n do
write(m[i,n-i+1]:3,' ');
writeln;
writeln;
end;
{$F-}
procedure Vyvod(m:matr;Gl,Pb:proc;n:byte);
begin
Gl(m,n);
Pb(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,Pob,n);
readln
end.

Leave a Comment

10 + = 18