Поворот на 90 градусов по часовой стрелке и против без использования дополнительного массива.
uses crt;
const n=6;
var a : array[1..n,1..n] of integer;
i,j,p,x : integer;
begin
clrscr;
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;
p := n div 2;
{поворот по часовой стрелке}
for i:=1 to p do
for j:=i to n-i do
begin
x := a[i,j];
a[i,j] := a[n-j+1,i];
a[n-j+1,i] := a[n-i+1,n-j+1];
a[n-i+1,n-j+1] := a[j,n-i+1];
a[j,n-i+1] := x;
end;
writeln('Поворот на 90 градусов по часовой стрелке:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
{поворот против часовой стрелки}
for i:=1 to p do
for j:=i to n-i do
begin
x:=a[i,j];
a[i,j]:=a[j,n-i+1];
a[j,n-i+1]:=a[n-i+1,n-j+1];
a[n-i+1,n-j+1] := a[n-j+1,i];
a[n-j+1,i]:=x;
end;
writeln('Поворот на 90 градусов против часовой стрелки:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
readln
end.
Комментарии:
Нету комментариев для вывода...