Дана матрица. Упорядочить элементы строк матрицы по невозрастанию, а сами строки по возрастанию элементов последнего столбца. Использовать сортировку простыми обменами, реализовав метод в виде подпрограммы.
посмотрите пожалста код, что не так?
почему то не меняет местами строки
и еще что такое по невозрастанию?
я сделал по убыванию, или это не так?
program z3_4;
const
size_row=5; {chislo strok}
size_col=5; {chislo stolbtsov}
type
tvector=array[1 .. size_col] of real;
tmatrix=array[1 .. size_row] of tvector;
procedure swap_rows(var mx: tmatrix; const i, j: integer);
var T:tvector;
begin
T:=mx[i];
mx[i]:=mx[j];
mx[j]:= T
end;
procedure print(var mx:tmatrix);
var i,j:integer;
begin
for i:=1 to size_row do
begin
for j:=1 to size_col do
write(' ',mx[i][j]);
writeln;
end;
end;
var
mx:tmatrix;
i,j,k:integer;
swap:real;
begin
randomize;
for i:=1 to size_row do
for j:=1 to size_col do
mx[i][j]:= random(100)-50;
writeln('before:');
print(mx);
for i:=1 to size_row do
for j:=1 to size_col-1 do
for k:=1 to size_col-j do
if mx[i][k]<mx[i][k+1] then
begin
swap:=mx[i][k];
mx[i][k]:=mx[i][k+1];
mx[i][k+1]:=swap;
end;
for i:=1 to size_col do
for j:=1 to size_col-i do
if mx[size_row][j]>mx[size_row][j+1] then
swap_rows(mx,j+1,j);
writeln('after:');
print(mx);
end.