Переставить столбцы матрицы по убыванию последней строки - 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 выполняет следующие действия:

  1. В начале кода определяются константы и переменные, которые будут использоваться в процессе выполнения программы.
  2. Затем происходит итерация пользователя для ввода количества строк и столбцов матрицы.
  3. После этого выводится исходная матрица, где каждый элемент представлен в виде трехзначного числа.
  4. Далее происходит выбор максимальных элементов последней строки. Для этого создается пустое множество s, которое будет содержать индексы столбцов, соответствующих максимальным элементам.
  5. Затем происходит перестановка столбцов матрицы по убыванию последней строки. Для этого создается новая матрица b, где каждый столбец соответствует максимальному элементу из последней строки исходной матрицы.
  6. Наконец, выводится новая матрица, где каждый элемент также представлен в виде трехзначного числа. Таким образом, данный код выполняет перестановку столбцов матрицы по убыванию последней строки.

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

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