Перестановка строк матрицы по неубыванию сумм. Метод вставок. - 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.
Объяснение кода листинга программы
- Объявление переменных:
- a: массив для хранения значений матрицы
- b: вспомогательный массив для сортировки
- n, m, i, j, k: булевые переменные для управления циклом
- sm: переменная для хранения суммы элементов строки
- Ввод количества строк и столбцов матрицы с помощью функции readln
- Вычисление суммы элементов каждой строки и запись суммы в дополнительный столбец матрицы
- Вывод исходной матрицы на экран
- Перестановка строк матрицы по неубыванию сумм в последнем столбце с использованием метода вставок
- Сортировка элементов последнего столбца матрицы по неубыванию с использованием метода вставок
- Вывод отсортированной матрицы на экран
- Ввод конца программы с помощью функции readln
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д