Сортировка диагоналей матрицы - 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.

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

В этом коде выполняется сортировка диагоналей матрицы. Вот список действий, которые происходят в коде:

  1. Объявление переменных:
    • a: массив размером [1..11,1..11] для хранения чисел;
    • n: количество строк в матрице;
    • i, j, k: индексы для перемещения по матрице;
    • min, x: временные переменные для хранения минимального значения и временного значения при обмене.
  2. Инициализация генератора случайных чисел.
  3. Проверка, что размер матрицы нечетное число от 3 до 11.
  4. Заполнение матрицы случайными числами от 10 до 99.
  5. Вывод исходной матрицы на экран.
  6. Проверка, является ли размер матрицы четным или нечетным, и выполнение соответствующей сортировки диагоналей.
  7. Вывод отсортированной матрицы на экран. Вот список действий по номерам:
  8. Заполнение матрицы случайными числами.
  9. Проверка размера матрицы.
  10. Вывод исходной матрицы.
  11. Проверка размера матрицы и сортировка диагоналей.
  12. Вывод отсортированной матрицы.

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

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