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

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

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

Дана матрица nxm, отсортировать столбцы матрицы по убыванию значений элементов в строке с номером, заданным пользователем. Вопрос жизни и смерти! Заранее спасибо!

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

textual
Листинг программы
  1. const nmax=20;
  2. var a:array[1..nmax,1..nmax] of integer;
  3.     m,n,i,j,k,p:byte;
  4.     x:integer;
  5. begin
  6. randomize;
  7. repeat
  8. write('Количество строк от 2 до ',nmax,' m=');
  9. readln(m);
  10. until m in [2..nmax];
  11. repeat
  12. write('Количество столбцов от 2 до ',nmax,' n=');
  13. readln(n);
  14. until n in [2..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. repeat
  26. write('Введите номер строки для сортировки от 1 до ',m,' k=');
  27. readln(k);
  28. until k in [1..m];
  29. for j:=1 to n-1 do
  30. for p:=j+1 to n do
  31. if a[k,j]>a[k,p] then
  32. for i:=1 to m do
  33.  begin
  34.   x:=a[i,j];
  35.   a[i,j]:=a[i,p];
  36.   a[i,p]:=x;
  37.  end;
  38. writeln('Перестановка столбцов по убыванию элементов в строке ',k);
  39. for i:=1 to m do
  40.  begin
  41.   for j:=1 to n do
  42.   write(a[i,j]:4);
  43.   writeln;
  44.  end;
  45. end.

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

В данном коде объявлены следующие переменные:

  • nmax - максимальное значение для строк и столбцов матрицы (не превышает 20).
  • a - матрица, в которой хранятся целые числа (размерность nmax x nmax).
  • m, n - количество строк и столбцов матрицы соответственно.
  • i, j, k, p - переменные, используемые в цикле для перестановки столбцов.
  • x - временная переменная, используемая для обмена элементов в переменной a. Цель программы - отсортировать столбцы матрицы по убыванию значений элементов в заданной строке. Программа начинается с запроса количества строк и столбцов матрицы, затем выводится исходная матрица. Далее происходит перестановка столбцов по убыванию элементов в заданной строке. Для этого используется вложенный цикл, который проходит по всем строкам и столбцам матрицы и сравнивает значения элементов. Если текущий элемент больше следующего, то происходит обмен этих элементов. В конце программы выводится отсортированная матрица.

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


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

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

13   голосов , оценка 3.538 из 5

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

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

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