Сортировка диагоналей матрицы - Pascal ABC
Формулировка задачи:
СУТЬ В ТОМ, ЧТОБЫ ДИАГОНАЛИ ВЫШЕ СРЕДНЕЙ СДЕЛАТЬ ПО УБЫВАНИЮ, А НИЖЕ СРЕДНЕЙ ПО ВОЗРАСТАНИЮ. МАТРИЦА ДАНА В ВИДЕ КВАДРАТА. МЕТОД ВЫБОРА.
Решение задачи: «Сортировка диагоналей матрицы»
textual
Листинг программы
var a:array[1..11,1..11]of integer; n,i,j,k,min,x:integer; begin randomize; repeat write('Размер матрицы нечетное число от 3 до 11 n= '); readln(n); until n in [3..11]; randomize; writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=10+random(90); write(a[i,j]:3); end; writeln; end; for k:=1 to 2*n-1 do if k<n then begin for i:=n-k+1 to n-1 do begin min:=i; for j:=i+1 to n do if a[j,j-n+k]<a[min,min-n+k] then min:=j; x:=a[i,i-n+k]; a[i,i-n+k]:=a[min,min-n+k]; a[min,min-n+k]:=x; end; end else if k>n then begin for i:=1 to 2*n-k-1 do begin min:=i; for j:=i+1 to 2*n-k do if a[j,j-n+k]>a[min,min-n+k] then min:=j; x:=a[i,i-n+k]; a[i,i-n+k]:=a[min,min-n+k]; a[min,min-n+k]:=x; end; end; writeln('Сортировка диагоналей'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:3); writeln; end; end.
Объяснение кода листинга программы
В этом коде выполняется сортировка диагоналей матрицы. Вот список действий, которые происходят в коде:
- Объявление переменных:
- a: массив размером [1..11,1..11] для хранения чисел;
- n: количество строк в матрице;
- i, j, k: индексы для перемещения по матрице;
- min, x: временные переменные для хранения минимального значения и временного значения при обмене.
- Инициализация генератора случайных чисел.
- Проверка, что размер матрицы нечетное число от 3 до 11.
- Заполнение матрицы случайными числами от 10 до 99.
- Вывод исходной матрицы на экран.
- Проверка, является ли размер матрицы четным или нечетным, и выполнение соответствующей сортировки диагоналей.
- Вывод отсортированной матрицы на экран. Вот список действий по номерам:
- Заполнение матрицы случайными числами.
- Проверка размера матрицы.
- Вывод исходной матрицы.
- Проверка размера матрицы и сортировка диагоналей.
- Вывод отсортированной матрицы.