program massiv;
const WG=30;
type tmatr=array[1..WG,1..WG] of real;
var a:tmatr; n,m:byte;
(*прцедура ввода элементов матрицы*)
procedure pr_wod_matr(var n1,m1:byte; var mas:tmatr);
var i,j:byte; kl:byte;
begin
writeln('Введи размерность матрицы n,m');
readln(n1,m1);
writeln('1-ввод случайным образом, 2-ввод с клавиатуры');
readln(kl);
if kl=1 then randomize;
for i:=1 to n1 do
for j:=1 to m1 do
case kl of
1:mas[i,j]:=random(300);
2:begin
writeln('Введи элемент',i,' строки ',j,' столбца матрицы');
readln(mas[i,j]);
end;
end;
end;
(*процедура вывода элементов матрицы*)
procedure pr_out_matr(n1,m1:byte; mas:tmatr);
var i,j:byte;
begin
writeln('Матрица');
for i:=1 to n1 do
begin
for j:=1 to m1 do
write(mas[i,j]:8:2);
writeln;
end;
end;
procedure pr_swap(var a,b:real);
begin
a:=a+b;
b:=a-b;
a:=a-b;
end;
(*процедура перестановки элементов матрицы побочной диагонали*)
procedure pr_diagonal(n,m:byte;var a:tmatr);
var i,j:byte;
begin
for i:=1 to n do
for j:=1 to m do
if (j+i<=n) then pr_swap(a[i,j],a[n-j+1,n-i+1]);
end;
begin
pr_wod_matr(n,m,a);
pr_out_matr(n,m,a);
pr_diagonal(n,m,a);
pr_out_matr(n,m,a);
end.