Упорядочить столбцы матрицы так, чтобы их максимальные элементы образовывали возрастающую последовательность - Pascal

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

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

Дана матрица размера M x N. Упорядочить ее столбцы так, чтобы их максимальные элементы образовывали возрастающую последовательность.

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

textual
Листинг программы
const nmax=20;
var a:array[1..nmax+1,1..nmax] of integer;
    m,n,i,j,k,mx,x:integer;
begin
randomize;
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random(50);
{находим макс. в столбцах}
for j:=1 to n do
 begin
  mx:=a[1,j];
  for i:=2 to m do
  if a[i,j]>mx then mx:=a[i,j];
  a[m+1,j]:=mx;{и записываем в дополнительную строку}
 end;
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  write(' ':6);{5 пробелов в начале строки}
  for j:=1 to n do
  write(a[i,j]:4);{элементы строки}
  writeln;
 end;
write('Макс. ');{дополнительная строка с суммами}
for j:=1 to n do
write(a[m+1,j]:4);
writeln;
{перестановка столбцов по возрастанию значений в последней строке}
for j:=1 to n-1 do
for k:=j+1 to n do
if a[m+1,j]>a[m+1,k] then
for i:=1 to m+1 do
 begin
  x:=a[i,j];
  a[i,j]:=a[i,k];
  a[i,k]:=x;
 end;
writeln('Столбцы упорядочены:');
for i:=1 to m do
 begin
  write(' ':6);
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
write('Макс. ');
for j:=1 to n do
write(a[m+1,j]:4);
end.

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

Данный код на языке Pascal предназначен для упорядочивания столбцов матрицы таким образом, чтобы их максимальные элементы образовывали возрастающую последовательность. В начале кода задаются максимальные значения для n и m, которые не должны превышать 20. Затем происходит чтение количества строк и столбцов из ввода пользователя. Далее, в цикле, заполняется матрица случайными числами от 1 до 50. Затем происходит поиск максимального элемента в каждом столбце и его запись в дополнительную строку. После этого выводится исходная матрица с пробелами между элементами и их значениями. Далее происходит перестановка столбцов по возрастанию значений в последней строке. В конце выводится упорядоченная матрица с максимальными значениями в отдельной строке и значениями столбцов.

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


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

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

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