Дана квадратная матрица порядка n. Матрицу ввести в память посредством указателя. Зеркально отразить элементы относительно горизонтальной оси симметрии матрицы — Pascal(Паскаль)

uses crt;
const nmax=20;
type Tmatr=array[1..nmax,1..nmax] of integer;
var a:^Tmatr;
    n,i,j:byte;
    x:integer;
begin
clrscr;
repeat
write('Размер матрицы до ',nmax,' n=');
readln(n);
until n in [1..nmax];
new(a);
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a^[i,j]:=10*i+j;
     write(a^[i,j]:4);
    end;
   writeln;
 end;
writeln;
for i:=1 to n div 2 do
for j:=1 to n do
 begin
  x:=a^[i,j];
  a^[i,j]:=a^[n-i+1,j];
  a^[n-i+1,j]:=x;
end;
writeln('Отражение по горизонтальной оси:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a^[i,j]:4);
  writeln;
 end;
dispose(a);
readln
end.

Leave a Comment

4 + 5 =