Задача на процедуры и функции Delfi
помогите пожалуйста исправить код, чтобы работал правильно. моя задача. в матрице размером 20на30 упорядочить строки по неубыванию максимальных элементов строк.(если я правильно поняла из условия то неубывание это возрастание, так?) если нет всё равно помогите пожалуйста переписать код на правильный, почему то не упорядочивает строки и вообще посмотрите что тут и как делать - срочно нужно сдать задачу!.. а я очень сильно запуталсь...
помогите пожалуйста исправить код, чтобы работал правильно. моя задача. в матрице размером 20на30 упорядочить строки по неубыванию максимальных элементов строк.(если я правильно поняла из условия то неубывание это возрастание, так?) если нет всё равно помогите пожалуйста переписать код на правильный, почему то не упорядочивает строки и вообще посмотрите что тут и как делать - срочно нужно сдать задачу!.. а я очень сильно запуталсь...
PHP:
program Project2;
{$APPTYPE CONSOLE}
uses
Windows,
SysUtils;
const
n=20;
m=30;
type
telem=Integer;
mas=array[1..n] of telem;
matr=array[1..m] of mas;
var b:mas;
function max_v_strok(a:matr):Real; {процедура поиска максимума в каждой строке}
var k,i,j:Integer;
max:telem;
begin
for j:=1 to n do
begin
max:=a[1,j];
for i:=2 to m do
begin
if a[i,j]>max then max:=a[i,j];
end;
writeln('Максимальный эл-т в ',j,' строке: ',max);
b[k]:=max; {запись максимумов в отдельный массив}
end;
max_v_strok:=max;
end;
Procedure uporad_strok;{процедура сортировки строк}
var k,i,j:Integer;
a:matr;
tmp:telem;
begin
for k:=1 to n do {открываем цикл по максимумам сравниваем элементы}
if b[k]>b[k+1] then
begin
for i:=1 to m do
begin
tmp:=a[i,k]; {сортируем строки по возрастанию}
a[i,k]:=a[i,k+1];
a[i,k+1]:=tmp;
end;
end;
end;
procedure Ptint_matr (var a:matr); {процедура печати новой матрицы}
var i,j:Integer;
begin
for i:=1 to m do
begin
for j:=1 to n do write(a[i,j],' ');
Writeln;
end;
end;
var
i,j:Integer;
a:matr;
begin
SetConsoleOutputCP(1251);
Writeln('Исходная матрица');
Randomize; {автоматическая генерация матрицы}
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(30);
write(a[i,j],' ');
end;
Writeln;
end;
Writeln('Максимальные элементы в каждой строке');
max_v_strok(a);
uporad_strok();
Writeln('Конечная матрица');
Ptint_matr(a);
Readln;
end.