Поменять местами 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.
Объяснение кода листинга программы
- Объявлена константа
n = 5
, которая определяет размер матрицы. - Инициализируется генератор случайных чисел
Randomize
. - Объявлена двумерная матрица
a
типаInteger
размером[1..n, 1..n]
. - В цикле
for
заполняются ячейки матрицыa
случайными числами в диапазоне от-9
до+9
. - Выводится сообщение
Исходная:
и строка из пробелов, в которую поочередно выводятся значения ячеек матрицыa
через пробел. - Запускается цикл
for
, который ищет минимальное и максимальное значение на главной диагонали матрицыa
. - Если найденные значения не совпадают, то происходит обмен ячеек с этими значениями.
- Выводится сообщение
Изменённая:
и строка из пробелов, в которую поочередно выводятся значения ячеек матрицыa
через пробел.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д