Переставить столбцы матрицы по убыванию последней строки - Pascal ABC
Формулировка задачи:
Дана матрица A[1..n,1..m] целых чисел. Напишите программу, которая переставит столбцы матрицы А таким образом, чтобы элементы последней строки стали упорядоченными в убывающем порядке. Для упорядочивания использовать метод сортировки посредством выбора и новую матрицу. Полученную матрицу вывести на экран.
Решение задачи: «Переставить столбцы матрицы по убыванию последней строки»
textual
Листинг программы
const nmax=10; var a,b:array[1..nmax,1..nmax] of integer; m,n,i,j,mx,jmx:integer; s:set of byte; begin randomize; repeat write('Количество строк до ',nmax,' n='); readln(n); until n in [1..nmax]; repeat write('Количество столбцов до ',nmax,' m='); readln(m); until m in [1..nmax]; writeln('Исходная матрица:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:3); end; writeln; end; {выбор максимальных по порядку элементов последней строки} s:=[]; for i:=1 to m do begin mx:=-maxint-1; for j:=1 to m do if not(j in s)and(a[n,j]>mx) then begin mx:=a[n,j]; jmx:=j; end; s:=s+[jmx]; for j:=1 to n do b[j,i]:=a[j,jmx]; end; writeln('Новая матрица'); for i:=1 to n do begin for j:=1 to m do write(b[i,j]:3); writeln; end; end.
Объяснение кода листинга программы
Данный код на языке Pascal ABC выполняет следующие действия:
- В начале кода определяются константы и переменные, которые будут использоваться в процессе выполнения программы.
- Затем происходит итерация пользователя для ввода количества строк и столбцов матрицы.
- После этого выводится исходная матрица, где каждый элемент представлен в виде трехзначного числа.
- Далее происходит выбор максимальных элементов последней строки. Для этого создается пустое множество
s
, которое будет содержать индексы столбцов, соответствующих максимальным элементам. - Затем происходит перестановка столбцов матрицы по убыванию последней строки. Для этого создается новая матрица
b
, где каждый столбец соответствует максимальному элементу из последней строки исходной матрицы. - Наконец, выводится новая матрица, где каждый элемент также представлен в виде трехзначного числа. Таким образом, данный код выполняет перестановку столбцов матрицы по убыванию последней строки.