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