Получить 4 матрицы, то есть матрицы надо получить такие, что если матрицу повернуть по часовой стрелке вокруг NxM

Пользователь вписывает матрицу NxM размера. Надо получить 4 матрицы, то есть матрицы надо получить такие, что если матрицу повернуть по часовой стрелке вокруг NxM. И все эти матрицы надо записать в файл, эти 4 матрицы после вписывание в файл надо в графическом режиме вывести на экран и сделать меню для программы.
Матрицу NxM повернуть на 90 градусов. Переворачивает матрицу NxM на 90 градусов.
Матрицу NxM повернуть на 180 градусов. Переворачивает матрицу NxM на 180 градусов.
Матрицу NxM повернуть на 270 градусов. Переворачивает матрицу NxM на 270 градусов.
Матрицу NxM повернуть на 360 градусов. Переворачивает матрицу NxM на 360 градусов.

code: #pascal
program PascalGuru;
uses crt;
label 0,1,2;
var A,B:array[1..100,1..100] of integer;
    i,j,m,n,k,l,temp:integer;
    f:text;
 
{--------------------------------------------}
begin
assign(f,'file_matricy.txt'); rewrite(f);
n:=0;
 
0:clrscr;
repeat
writeln('MENU');
writeln;
writeln('1) Vvod massiva');
writeln('2) Perevernuti massiv');
writeln;
writeln('0) Vyxod');
readln(temp);
if temp=1 then goto 1;
if temp=2 then goto 2;
if temp=0 then begin close(f); halt; end;
until n=-1; {до бесконечности}
 
1:clrscr;
write('N= '); readln (n);
write('M= '); readln (m);
 
writeln ('Vvedite elementy massiva: ');
for i:=1 to n do
for j:=1 to m do begin
write ('A[',i,',',j,']='); readln (A[i,j]); end;
k:=0;
readln; goto 0;
 
2:clrscr;
         if (k<>0) then begin n:=k; m:=l; end;
if n=0 then begin writeln ('Vy esce ne vveli massiv...'); readln; goto 0; end;
write ('Vot vvedennyi vami massiv: ');
for i:=1 to n do begin writeln;
for j:=1 to m do write (A[i,j]:4,' '); end;
 
         writeln (f,'Vot vvedennyi vami massiv: ');
         for i:=1 to n do
             begin
                  if i<>1 then writeln(f);
                  for j:=1 to m do write (f,A[i,j],' ');
             end;
 
{---------------------90---------------------}
k:=m;
l:=n;
for j:=1 to m do
    begin
    temp:=n+1;
    for i:=1 to n do begin dec(temp); B[j,temp]:=A[i,j];  end;
    end;
 
writeln; writeln; writeln(f); writeln(f);
write ('povernutyi na 90 gradusov: ');
for i:=1 to k do begin writeln;
for j:=1 to l do write (B[i,j]:4,' '); end;
 
         writeln (f,'povernutyi na 90 gradusov: ');
         for i:=1 to k do
             begin
                  if i<>1 then writeln(f);
                  for j:=1 to l do write (f,B[i,j],' ');
             end;
{---------------------180--------------------}
m:=l;
n:=k;
for j:=1 to l do
    begin
    temp:=k+1;
    for i:=1 to k do begin dec(temp); A[j,temp]:=B[i,j];  end;
    end;
 
writeln; writeln; writeln(f); writeln(f);
write ('povernutyi na 180 gradusov: ');
for i:=1 to m do begin writeln;
for j:=1 to n do write (A[i,j]:4,' '); end;
 
         writeln (f,'povernutyi na 180 gradusov: ');
         for i:=1 to m do
             begin
                  if i<>1 then writeln(f);
                  for j:=1 to n do write (f,A[i,j],' ');
             end;
{---------------------270---------------------}
k:=n;
l:=m;
for j:=1 to n do
    begin
    temp:=m+1;
    for i:=1 to m do begin dec(temp); B[j,temp]:=A[i,j];  end;
    end;
 
writeln; writeln; writeln(f); writeln(f);
write ('povernutyi na 270 gradusov: ');
for i:=1 to k do begin writeln;
for j:=1 to l do write (B[i,j]:4,' '); end;
 
         writeln (f,'povernutyi na 270 gradusov: ');
         for i:=1 to k do
             begin
                  if i<>1 then writeln(f);
                  for j:=1 to l do write (f,B[i,j],' ');
             end;
{---------------------360--------------------}
 
k:=m;
l:=n;
for j:=1 to m do
    begin
    temp:=n+1;
    for i:=1 to n do begin dec(temp); A[j,temp]:=B[i,j];  end;
    end;
 
writeln; writeln; writeln(f); writeln(f);
write ('povernutyi na 360 gradusov: ');
for i:=1 to k do begin writeln;
for j:=1 to l do write (A[i,j]:4,' '); end;
 
         writeln (f,'povernutyi na 360 gradusov: ');
         for i:=1 to k do
             begin
                  if i<>1 then writeln(f);
                  for j:=1 to l do write (f,A[i,j],' ');
             end;
{---------------------***--------------------}
readln; goto 0;
 
end.      
Поделиться:

Похожие статьи: