Поворот на 90 градусов по часовой стрелке и против без использования дополнительного массива
Категория: Delphi/Pascal
2012-02-09 22:06:16
code: #pascal
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.
автор: yanyk1n
Поделиться: