Упорядочить элементы матрицы по правилу (процедуры и функции) - PascalABC.NET
Формулировка задачи:
Пусть задана вещественная матрица A (n x n).
Упорядочить элементы матрицы: a) по неубыванию значений максимальных элементов в строках;
b) по неубыванию сумм элементов строк.
Решение задачи: «Упорядочить элементы матрицы по правилу (процедуры и функции)»
textual
Листинг программы
var a:array[,] of real; n,i,j,l:byte; sm,mx,b:real; begin randomize; write('Размер матрицы n='); readln(n); setlength(a,n,n+2); //вычисление сумм и макс. в строках и запись их в дополнительные столбцы for i:=0 to n-1 do begin sm:=0; for j:=0 to n-1 do begin a[i,j]:=10*random; sm:=sm+a[i,j]; if j=0 then mx:=a[i,0] else if a[i,j]>mx then mx:=a[i,j]; end; a[i,n]:=mx; a[i,n+1]:=sm; end; writeln('Исходный массив:'); writeln('Макс':n*5+8,' Сумма'); for i:=0 to n-1 do begin for j:=0 to n+1 do if j=n then write(a[i,j]:8:1) else if j=n+1 then write(a[i,j]:6:1) else write(a[i,j]:5:1); writeln; end; //перестановка строк по неубыванию макс. элементов(по предпоследнему столбцу) for i:=0 to n-2 do for l:=i+1 to n-1 do if a[i,n]>a[l,n] then for j:=0 to n+1 do begin b:=a[i,j]; a[i,j]:=a[l,j]; a[l,j]:=b; end; writeln('Строки по неубыванию макс. элементов:'); writeln('Макс':n*5+8,' Сумма'); for i:=0 to n-1 do begin for j:=0 to n+1 do if j=n then write(a[i,j]:8:1) else if j=n+1 then write(a[i,j]:6:1) else write(a[i,j]:5:1); writeln; end; //перестановка строк по неубыванию сумм(по последнему столбцу) for i:=0 to n-2 do for l:=i+1 to n-1 do if a[i,n+1]>a[l,n+1] then for j:=0 to n+1 do begin b:=a[i,j]; a[i,j]:=a[l,j]; a[l,j]:=b; end; writeln('Строки по неубыванию сумм:'); writeln('Макс':n*5+8,' Сумма'); for i:=0 to n-1 do begin for j:=0 to n+1 do if j=n then write(a[i,j]:8:1) else if j=n+1 then write(a[i,j]:6:1) else write(a[i,j]:5:1); writeln; end; end.
Объяснение кода листинга программы
- Объявлены переменные: a (массив), n (размер матрицы), i, j, l (количество строк, столбцов), sm, mx, b (сумма, максимальное значение, буфер).
- Задается размер матрицы.
- Вычисляются суммы и максимальные значения в строках, записываются в дополнительные столбцы.
- Выводится исходный массив.
- Строки переупорядочиваются по неубыванию максимального значения элементов (по предпоследнему столбцу).
- Выводится массив с переставленными строками.
- Строки переупорядочиваются по неубыванию суммы элементов (по последнему столбцу).
- Выводится массив с переставленными строками.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д