Отсортировать столбцы матрицы по убыванию значений элементов в заданной строке - Pascal ABC
Формулировка задачи:
Дана матрица nxm, отсортировать столбцы матрицы по убыванию значений элементов в строке с номером, заданным пользователем.
Вопрос жизни и смерти! Заранее спасибо!
Решение задачи: «Отсортировать столбцы матрицы по убыванию значений элементов в заданной строке»
textual
Листинг программы
- const nmax=20;
- var a:array[1..nmax,1..nmax] of integer;
- m,n,i,j,k,p:byte;
- x:integer;
- begin
- randomize;
- repeat
- write('Количество строк от 2 до ',nmax,' m=');
- readln(m);
- until m in [2..nmax];
- repeat
- write('Количество столбцов от 2 до ',nmax,' n=');
- readln(n);
- until n in [2..nmax];
- writeln('Исходная матрица:');
- for i:=1 to m do
- begin
- for j:=1 to n do
- begin
- a[i,j]:=random(100);
- write(a[i,j]:4);
- end;
- writeln;
- end;
- repeat
- write('Введите номер строки для сортировки от 1 до ',m,' k=');
- readln(k);
- until k in [1..m];
- for j:=1 to n-1 do
- for p:=j+1 to n do
- if a[k,j]>a[k,p] then
- for i:=1 to m do
- begin
- x:=a[i,j];
- a[i,j]:=a[i,p];
- a[i,p]:=x;
- end;
- writeln('Перестановка столбцов по убыванию элементов в строке ',k);
- for i:=1 to m do
- begin
- for j:=1 to n do
- write(a[i,j]:4);
- writeln;
- end;
- end.
Объяснение кода листинга программы
В данном коде объявлены следующие переменные:
- nmax - максимальное значение для строк и столбцов матрицы (не превышает 20).
- a - матрица, в которой хранятся целые числа (размерность nmax x nmax).
- m, n - количество строк и столбцов матрицы соответственно.
- i, j, k, p - переменные, используемые в цикле для перестановки столбцов.
- x - временная переменная, используемая для обмена элементов в переменной a. Цель программы - отсортировать столбцы матрицы по убыванию значений элементов в заданной строке. Программа начинается с запроса количества строк и столбцов матрицы, затем выводится исходная матрица. Далее происходит перестановка столбцов по убыванию элементов в заданной строке. Для этого используется вложенный цикл, который проходит по всем строкам и столбцам матрицы и сравнивает значения элементов. Если текущий элемент больше следующего, то происходит обмен этих элементов. В конце программы выводится отсортированная матрица.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д