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