Упорядочить элементы матрицы по правилу (процедуры и функции) - 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.

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

  1. Объявлены переменные: a (массив), n (размер матрицы), i, j, l (количество строк, столбцов), sm, mx, b (сумма, максимальное значение, буфер).
  2. Задается размер матрицы.
  3. Вычисляются суммы и максимальные значения в строках, записываются в дополнительные столбцы.
  4. Выводится исходный массив.
  5. Строки переупорядочиваются по неубыванию максимального значения элементов (по предпоследнему столбцу).
  6. Выводится массив с переставленными строками.
  7. Строки переупорядочиваются по неубыванию суммы элементов (по последнему столбцу).
  8. Выводится массив с переставленными строками.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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