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

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

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

дана действительная матрица размером n*m. упорядочить (переставить) рядки матрицы по неубыванию значений наименьших элементов рядков.

(сортировка обменом)

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

textual
Листинг программы
const
  nmax=14; W=5; D=2;
var
  a: array [1..nmax+1,1..nmax+1] of Real;
  n, m, i, j, mm: Integer;
begin
  Randomize;
  repeat
    Write('Введите N [2..',nmax,'], M [2..',nmax,']: '); ReadLn(n,m);
  until (n in [2..nmax]) and (m in [2..nmax]);
  WriteLn('Исходная матрица:');
  for i:=1 to n do begin
    mm:=1;
    for j:=1 to m do begin
      a[i,j]:=10*random; Write(a[i,j]:W:D);
      if a[i,j]<a[i,mm] then mm:=j;
    end;
    a[i,m+1]:=a[i,mm]; WriteLn('|',a[i,m+1]:W:D);
  end;
  { сортировка выбором по неубыванию наименьших элементов строк }
  for i:=1 to n-1 do begin  { от первой строки до предпоследней }
    mm:=i;
    for j:=i+1 to n do
      if a[j,m+1]<a[mm,m+1] then mm:=j;       { ищем минимальный }
    a[n+1]:=a[i]; a[i]:=a[mm]; a[mm]:=a[n+1]; { меняем с текущим }
  end;
  Writeln('Строки по неубыванию наименьших элементов строк:');
  for i:=1 to n do begin
    for j:=1 to m do Write(a[i,j]:W:D); WriteLn('|',a[i,m+1]:W:D);
  end;
  Write('Нажмите Enter...'); ReadLn;
end.

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

В этом коде:

  1. Задаются константы nmax, W и D, которые определяют размерность матрицы и формат вывода чисел.
  2. Создается массив a размером nmax+1 на nmax+1, который будет хранить значения матрицы.
  3. Пользователю предлагается ввести значения n и m, которые определяют количество строк и столбцов матрицы соответственно.
  4. В цикле выводится исходная матрица, заполненная случайными числами.
  5. Запускается цикл сортировки выбором по неубыванию наименьших элементов строк.
  6. Выводится отсортированная матрица.
  7. Пользователю предлагается нажать Enter для выхода из программы.

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


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

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

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