Обработка двумерных массивов с пом ощью подпрограмм - 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.

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

  1. Объявлены переменные: n, m, i, j, l (количество строк, количество столбцов, текущие строка и столбец, вспомогательная переменная для цикла)
  2. Задаются значения переменным n и m с помощью функции readln
  3. Инициализируются элементы массива a случайными числами от 0 до 100 с помощью функции randomize и readln
  4. Находится максимальное значение в каждой строке и записывается в дополнительный столбец m+1 с помощью двух вложенных циклов
  5. Выводится исходный массив с помощью двух вложенных циклов и функции write
  6. Строки массива переупорядочиваются по возрастанию суммы элементов в последнем столбце с помощью двух вложенных циклов и вспомогательной переменной l
  7. Выводится отсортированный массив с помощью двух вложенных циклов и функции write
  8. Программа завершается с помощью функции readln

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

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