Поменять местами min и max элементы в матрице на диагоналях, параллельных главной - PascalABC.NET

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

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

Собственно, не могу сделать указанное требование для диагоналей ниже главной. Главная диагональ тоже попадает под это требование. В программе сделано для верхних и главной. Выручите кодом для диагоналей, паралл. главной и ниже главной.
Конкретная постановка задачи: ...получить матрицу. В полученной матрице необходимо в каждой диагонали матрицы, параллельной главной, включая главную, поменять местами max и min.

Решение задачи: «Поменять местами min и max элементы в матрице на диагоналях, параллельных главной»

textual
Листинг программы
const
  n = 5;
begin
  Randomize;
  var a : array [1..n, 1..n] of Integer;
  for var Row := 1 to n do
    for var Col := 1 to n do
      a[Row, Col] := Random(-9,+9);
      
  WriteLn('Исходная:');
  for var Row := 1 to n do
    begin
      for var Col := 1 to n do
        Write(a[Row, Col]:3);
      WriteLn;
    end;
  WriteLn;
  
  /// Поиск и обмен min и max диагоналей
  for var Start := 1 to N-1 do // Последнюю из одного элемента рассматривать не имеет смысла
    begin
      var min := 0; var max := 0;
      for var i := 1 to N - Start do
        if A[Start + i, 1 + i] < A[Start + min, 1 + min] then min := i
        else if A[Start + i, 1 + i] > A[Start + max, 1 + max] then max := i;
      if min <> max then
        Swap(A[Start + min, 1 + min], A[Start + max, 1 + max]);
    end;
 
  WriteLn('Изменённая:');
  for var Row := 1 to n do
    begin
      for var Col := 1 to n do
        Write(a[Row, Col]:3);
      WriteLn;
    end;
  WriteLn;
end.

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

  1. Объявлена константа n = 5, которая определяет размер матрицы.
  2. Инициализируется генератор случайных чисел Randomize.
  3. Объявлена двумерная матрица a типа Integer размером [1..n, 1..n].
  4. В цикле for заполняются ячейки матрицы a случайными числами в диапазоне от -9 до +9.
  5. Выводится сообщение Исходная: и строка из пробелов, в которую поочередно выводятся значения ячеек матрицы a через пробел.
  6. Запускается цикл for, который ищет минимальное и максимальное значение на главной диагонали матрицы a.
  7. Если найденные значения не совпадают, то происходит обмен ячеек с этими значениями.
  8. Выводится сообщение Изменённая: и строка из пробелов, в которую поочередно выводятся значения ячеек матрицы a через пробел.

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


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

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

6   голосов , оценка 3.667 из 5
Похожие ответы