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

Пользователь вписывает матрицу 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.

Leave a Comment

98 − 96 =