Упорядочить (переставить) строки матрицы по неубыванию значений наименьших элементов рядков - 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.
Объяснение кода листинга программы
В этом коде:
- Задаются константы
nmax
,W
иD
, которые определяют размерность матрицы и формат вывода чисел. - Создается массив
a
размеромnmax+1
наnmax+1
, который будет хранить значения матрицы. - Пользователю предлагается ввести значения
n
иm
, которые определяют количество строк и столбцов матрицы соответственно. - В цикле выводится исходная матрица, заполненная случайными числами.
- Запускается цикл сортировки выбором по неубыванию наименьших элементов строк.
- Выводится отсортированная матрица.
- Пользователю предлагается нажать Enter для выхода из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д