Упорядочить (переставить) строки матрицы по неубыванию значений наименьших элементов рядков - 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 для выхода из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д