Разворот матрицы на 180 градусов

Необходимо матрицу размером 5 на 5 развернуть на 180 градусов

В чем именно проблема?
Что пробовали делать, что получилось, что не получилось?
И где хоть развернуть-то, на листочке?))

Ну берете листик. Пишете или рисуете там матрицу. Поворачиваете листочек и вуаля задача решена ))

на самом деле есть много вариантов решения вашей задачи (разных алгоритмов).

Самый простой - просто вывести исходную матрицу на экран в обратном порядке:

  // вывод повёрнутой на 180 матрицы на экран (без реальной перестановки элементов)
  WriteLn('Matrix transponse:');
  for i:=n downto 1 do begin
    for j:=n downto 1 do Write(matr[i,j]:3);
    WriteLn
  end;

Если же нужно получить матрицу с переставленными элементами, то тут тоже два варианта.

  1. создать новую матрицу и перенести из старой элементы в обратном порядке (см. вывод в обратном порядке)
  2. переставлять элементы внутри старой матрицы.
    вот как это выглядит на Паскаль:
const n=5;

var i, j : integer;
  matr : array[1..n,1..n] of integer;
  k : integer;

begin
  for i:=1 to n do
    for j:=1 to n do
      matr[i,j] := (i-1)*n+j;


  // вывод матрицы на экран
  for i:=1 to n do begin
    for j:=1 to n do Write(matr[i,j]:3);
    WriteLn
  end;

  // поворот на 180 градусов
  for i:=1 to n div 2  do 
    for j:=1 to n  do  begin
      k:=matr[i,j]; 
      matr[i,j] := matr[n+1-i,n+1-j];
      matr[n+1-i,n+1-j] := k
    end;

  if odd(n) then 
    for j:=1 to n div 2  do  begin
      k:=matr[(n div 2)+1,j]; 
      matr[(n div 2)+1,j] := matr[(n div 2)+1,n+1-j];
      matr[(n div 2)+1,n+1-j] := k
    end;
  
   WriteLn('New matrix');
  // вывод матрицы на экран
  for i:=1 to n do begin
    for j:=1 to n do Write(matr[i,j]:3);
    WriteLn
  end;

  
end.