Получить 4 матрицы, то есть матрицы надо получить такие, что если матрицу повернуть по часовой стрелке вокруг NxM
Категория: Delphi/Pascal
2012-03-04 21:11:17
Пользователь вписывает матрицу 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.
Поделиться: