Обработка двумерных массивов с пом ощью подпрограмм - Pascal
Формулировка задачи:
Пусть задана вещественная матрица А(n x n). Упорядочить элементы матрицы по не убыванию значений максимальных элементов в строках.
решите срочно нужно)
,,
Решение задачи: «Обработка двумерных массивов с пом ощью подпрограмм»
textual
Листинг программы
uses crt; const nmax=20; var a:array[1..nmax,1..nmax] of real; n,m,i,j,l:byte; mx,b:real; begin clrscr; randomize; write('Количество строк n='); readln(n); write('Количество столбцов m='); readln(m); for i:=1 to n do for j:=1 to m do a[i,j]:=10*random; {нахождение максимальных в строках и запись их в дополнительный столбец} for i:=1 to n do begin mx:=a[i,1]; for j:=1 to m do if a[i,j]>mx then mx:=a[i,j]; a[i,m+1]:=mx; end; writeln('Исходный массив:'); writeln('Макс.':(m*5+9)); for i:=1 to n do begin for j:=1 to m+1 do if j=m+1 then write(a[i,j]:8:1) else write(a[i,j]:5:1); writeln; end; {перестановка строк по неубыванию сумм(по последнему столбцу)} for i:=1 to n-1 do for l:=i+1 to n do if a[i,m+1]>a[l,m+1] then for j:=1 to m+1 do begin b:=a[i,j]; a[i,j]:=a[l,j]; a[l,j]:=b; end; writeln('Строки по возрастанию максимальных элементов:'); writeln('Макс.':(m*5+9)); for i:=1 to n do begin for j:=1 to m+1 do if j=m+1 then write(a[i,j]:8:1) else write(a[i,j]:5:1); writeln; end; readln end.
Объяснение кода листинга программы
- Объявлены переменные: n, m, i, j, l (количество строк, количество столбцов, текущие строка и столбец, вспомогательная переменная для цикла)
- Задаются значения переменным n и m с помощью функции readln
- Инициализируются элементы массива a случайными числами от 0 до 100 с помощью функции randomize и readln
- Находится максимальное значение в каждой строке и записывается в дополнительный столбец m+1 с помощью двух вложенных циклов
- Выводится исходный массив с помощью двух вложенных циклов и функции write
- Строки массива переупорядочиваются по возрастанию суммы элементов в последнем столбце с помощью двух вложенных циклов и вспомогательной переменной l
- Выводится отсортированный массив с помощью двух вложенных циклов и функции write
- Программа завершается с помощью функции readln