В строке матрицы с наибольшим элементом на главной диагонали, упорядочить элементы по убыванию - Pascal
Формулировка задачи:
Дана матрица А(8,8) действительных чисел. Требуется в строке, с наибольшим элементом на главной диагонали, упорядочить элементы по убыванию.
Решение задачи: «В строке матрицы с наибольшим элементом на главной диагонали, упорядочить элементы по убыванию»
textual
Листинг программы
const N = 8;
const M = 8;
type item_t = double;
type line_t = array[1..M] of item_t;
type tabl_t = array[1..N] of line_t;
var
s: tabl_t;
i,c,sX,x,y,mY: integer;
max: item_t;
begin
for y:=1 to N do
for x:=1 to M do
s[y][x] := random(-100 , 100);
for y:= 1 to N do begin
for x:= 1 to M do
write(s[y][x] :5);
writeln;
end;
Writeln('-------------------------------');
mY := 1;
max := s[1][1];
y := 2;
x := 2;
while( (y <= N) AND (x <= M) ) do begin
if s[y][x] > max then begin
mY := y;
max := s[y][x];
end;
y := y + 1;
x := x + 1;
end;
writeln( 'Max y: ' , mY );
for x:=1 to M-1 do
for sX:= M downto x+1 do begin
if s[mY][x] < s[mY][sX] then begin
max := s[mY][x];
s[mY][x] := s[mY][sX];
s[mY][sX] := max;
end;
end;
for y:= 1 to N do begin
for x:= 1 to M do
write(s[y][x] :5);
writeln;
end;
end.
Объяснение кода листинга программы
- константа
N= 8 - размерность матрицы по вертикали - константа
M= 8 - размерность матрицы по горизонтали - тип
item_t= double - тип элемента матрицы - тип
line_t= array[1..M] of item_t - тип строкового массива элементов - тип
tabl_t= array[1..N] of line_t - тип таблицы (двумерного массива) - переменная
s- таблица, в которую записываются случайные числа от -100 до 100 - переменная
i- счетчик для цикла - переменная
c- счетчик для цикла - переменная
sX- координата по горизонтали - переменная
x- координата по горизонтали - переменная
y- координата по вертикали - переменная
mY- координата строки с максимальным элементом - переменная
max- максимальный элемент матрицы - генерация случайных элементов от -100 до 100 для матрицы
s - вывод матрицы
s - разделительная строка
- инициализация переменных
mY= 1,max= s[1][1],y= 2,x= 2 - поиск строки с максимальным элементом
- вывод строки с максимальным элементом
- упорядочивание элементов выбранной строки по убыванию
- вывод упорядоченной матрицы
s