Отсортировать каждый столбец с четным номером по неубыванию - Pascal ABC

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

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

Дана целочисленная прямоугольная матрица размера M*N. Отсортировать каждый столбец с четным номером по неубыванию, а каждый столбец с нечетным номером по невозрастанию.

Решение задачи: «Отсортировать каждый столбец с четным номером по неубыванию»

textual
Листинг программы
  1. const nmax=10;
  2. var a:array[1..nmax,1..nmax] of integer;
  3.     m,n,i,j,k:byte;
  4.     x:integer;
  5. begin
  6. randomize;
  7. repeat
  8. write('Количество строк до ',nmax,' m=');
  9. readln(m);
  10. until m in [1..nmax];
  11. repeat
  12. write('Количество столбцов до ',nmax,' n=');
  13. readln(n);
  14. until n in [1..nmax];
  15. writeln('Исходная матрица:');
  16. for i:=1 to m do
  17.  begin
  18.   for j:=1 to n do
  19.    begin
  20.     a[i,j]:=random(100);
  21.     write(a[i,j]:4);
  22.    end;
  23.   writeln;
  24.  end;
  25. for j:=1 to n do
  26. for i:=1 to m-1 do
  27. for k:=i+1 to m do
  28. if (odd(j)and(a[i,j]<a[k,j]))
  29. or (not odd(j)and(a[i,j]>a[k,j])) then
  30.  begin
  31.   x:=a[i,j];
  32.   a[i,j]:=a[k,j];
  33.   a[k,j]:=x;
  34.  end;
  35. writeln('Сортировка столбцов:');
  36. for i:=1 to m do
  37.  begin
  38.   for j:=1 to n do
  39.   write(a[i,j]:4);
  40.   writeln;
  41.  end;
  42. end.

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

Данный код написан на языке Pascal ABC и выполняет следующие действия:

  1. В первой части кода задаются константы и переменные:
    • nmax - максимальное количество строк и столбцов в матрице (задается значением 10);
    • a - массив для хранения матрицы (инициализируется переменной a со типом array[1..nmax,1..nmax] of integer);
    • m, n, i, j, k - байтовые переменные для индексации строк и столбцов матрицы;
    • x - переменная для временного хранения значения элемента матрицы.
  2. Во второй части кода происходит чтение количества строк и столбцов из ввода пользователя.
  3. В третьей части кода выводится исходная матрица. Для этого выполняется цикл for i:=1 to m do, внутри которого идет цикл for j:=1 to n do, а внутри него - цикл for k:=i+1 to m do. Внутри каждого внутреннего цикла вычисляется значение элемента матрицы a[i,j] и выводится его на экран.
  4. В четвертой части кода выполняется сортировка столбцов матрицы. Для этого используется алгоритм сортировки выбором. Выполняется цикл for i:=1 to m do, внутри которого идет цикл for j:=1 to n do. Внутри каждого внутреннего цикла вычисляется значение элемента матрицы a[i,j] и сравнивается с значением элемента a[k,j] (где k - переменная, инициализированная значением i+1). Если текущий элемент меньше или равен элементу a[k,j], то значения меняются местами с помощью операции присваивания a[i,j]:=a[k,j].
  5. В пятой части кода выводится отсортированная матрица. Выполняется цикл for i:=1 to m do, внутри которого идет цикл for j:=1 to n do, а внутри него - цикл for k:=i+1 to m do. Внутри каждого внутреннего цикла выводится значение элемента матрицы a[i,j]. Таким образом, данный код выполняет сортировку столбцов матрицы по возрастанию, используя алгоритм сортировки выбором.

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


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

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

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы