Как повернуть прямоугольную матрицу на 180 градусов вправо? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

как повернуть прямоугольную матрицу на 180 градусов вправо?

Решение задачи: «Как повернуть прямоугольную матрицу на 180 градусов вправо?»

textual
Листинг программы
  1. uses crt;
  2. var a:array[1..20,1..20] of integer;
  3.     m,n,i,j,x:integer;
  4. begin
  5. clrscr;
  6. write('n=');
  7. readln(n);
  8. write('m=');
  9. readln(m);
  10. writeln('Исходная матрица:');
  11. for i:=1 to n do
  12.  begin
  13.   for j:=1 to m do
  14.    begin
  15.     a[i,j]:=10*i+j;
  16.     write(a[i,j]:4);
  17.    end;
  18.   writeln;
  19.  end;
  20. for i:=1 to n div 2 do
  21. for j:=1 to m do
  22.  begin
  23.   x:=a[i,j];
  24.   a[i,j]:=a[n-i+1,m-j+1];
  25.   a[n-i+1,m-j+1]:=x;
  26.  end;
  27. {если кол. строк нечетное, переставим элементы  средней строки}
  28. if odd(n) then
  29. for i:=1 to m div 2 do
  30.  begin
  31.   x:=a[n div 2+1,i];
  32.   a[n div 2+1,i]:=a[n div 2+1,m-i+1];
  33.   a[n div 2+1,m-i+1]:=x;
  34.  end;
  35. writeln('Поворот на 180 градусов:');
  36. for i:=1 to n do
  37.  begin
  38.   for j:=1 to m do
  39.   write(a[i,j]:4);
  40.   writeln;
  41.  end;
  42. readln
  43. end.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • a: массив 20x20 целых чисел,
    • m, n: числа для размера матрицы,
    • i, j, x: вспомогательные переменные для циклов.
  2. Задаются размеры матрицы (числа m и n) с помощью функций readln и clrscr из библиотеки CRT.
  3. Выводится исходная матрица. Для этого используется два вложенных цикла: внешний цикл для строк от 1 до n и внутренний цикл для столбцов от 1 до m. В каждой ячейке матрицы (a[i,j]) вычисляется значение (10*i+j) и выводится на экран с помощью функции write. После каждой строки матрицы выводится символ новой строки (\n) для перехода на следующую строку.
  4. Производится поворот матрицы на 180 градусов вправо. Для этого используется два вложенных цикла: внешний цикл для строк от 1 до n/2 и внутренний цикл для столбцов от 1 до m. Для каждой ячейки в середине матрицы (a[n/2,j]) значения меняются местами с соответствующими ячейками в правой части матрицы (a[n-i+1,m-j+1]). Затем значения в ячейке a[n/2,j] меняются местами с ячейкой a[n/2,m-j+1]. Если количество строк нечетное, то значения в ячейке a[n/2+1,i] меняются местами с ячейкой a[n/2+1,m-i+1].
  5. Выводится повернутая на 180 градусов матрица. Для этого используется два вложенных цикла: внешний цикл для строк от 1 до n и внутренний цикл для столбцов от 1 до m. В каждой ячейке матрицы (a[i,j]) выводится значение с помощью функции write. После каждой строки матрицы выводится символ новой строки (\n) для перехода на следующую строку.
  6. Программа ожидает ввода данных с помощью функции readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы