Перестановка строк матрицы по неубыванию сумм. Метод вставок. - Pascal

Узнай цену своей работы

Формулировка задачи:

дана действительная матрица размера А(M,N). упорядочить строки по неубыванию значений сумм элеменотв строк методом простых вставок(insert soft). На экран вывести исходную и отсортированную матрицы. тут надо написать прогу в паскале помогите плз очень надо

Решение задачи: «Перестановка строк матрицы по неубыванию сумм. Метод вставок.»

textual
Листинг программы
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of real;//матрица
    b:array[1..nmax] of real;//вспомогательный массив для сортировки
    n,m,i,j,k:byte;
    sm:real;
begin
clrscr;
randomize;
write('Количество строк n=');
readln(n);
write('Количество столбцов m=');
readln(m);
{вычисление сумм в строках и запись их в дополнительный столбец}
for i:=1 to n do
 begin
  sm:=0;
  for j:=1 to m do
   begin
    a[i,j]:=10*random;
    sm:=sm+a[i,j];
   end;
  a[i,m+1]:=sm;//заносим сумму в строке в дополнительный столбец
 end;
writeln('Исходный массив:');
writeln('Сумма':(m*5+8));
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:=2 to n do
 begin
  j:=i-1;
  for k:=1 to m+1 do bi[k]:=a[i,k];//запоминаем элементы столбцов данной строки во временном массиве
  while (j>=1) and (a[j,m+1]>bi[m+1]) do//сортриуем по неубыванию в столбце сумм
   begin
    for k:=1 to m+1 do//во всех столбцах одновременно
    a[j+1,k]:=a[j,k];//делаем перестановки как в последнем
    j:=j-1;
   end;
    for k:=1 to m+1 do
    a[j+1,k]:=bi[k];//вставляем на нужное место элементы из массива
 end;
writeln('Строки по неубыванию сумм:');
writeln('Сумма':(m*5+8));
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. Объявление переменных:
    • a: массив для хранения значений матрицы
    • b: вспомогательный массив для сортировки
    • n, m, i, j, k: булевые переменные для управления циклом
    • sm: переменная для хранения суммы элементов строки
  2. Ввод количества строк и столбцов матрицы с помощью функции readln
  3. Вычисление суммы элементов каждой строки и запись суммы в дополнительный столбец матрицы
  4. Вывод исходной матрицы на экран
  5. Перестановка строк матрицы по неубыванию сумм в последнем столбце с использованием метода вставок
  6. Сортировка элементов последнего столбца матрицы по неубыванию с использованием метода вставок
  7. Вывод отсортированной матрицы на экран
  8. Ввод конца программы с помощью функции readln

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


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

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

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