Procedure change(g,f:integer); //Процедура обмена var x:integer; begin x:=g; g:=f; f:=x; end;
procedure sort1(var b:mas1); //Процедура сортировки одномерного массива ( в данной задаче столбца) var k,j:integer; begin for j:=1 to n-1 do for k:=1 to n-j-1 do
if b[k+1]<b[k] then change(b[k+1],b[k]); end;
procedure Sortirov(var a:mas2); var k,x,i,j:integer; begin for i:=1 to m-1 do // (m-1)- количество столбцов sort1(a[i]);//Сортируем i-тый столбец массива end;  Данные процедуры отлично сортируют массив по столбцам, но можно ли с помощью этих процедур как-нибудь отсортировать массив по строкам?
Дополнен 7 лет назад
mas1- Одномерный массив mas2 -двумерный масссив
Дополнен 7 лет назад
Вот верх программы const n=3; m=6; Type mas1=array[1..n] of integer; mas2=array[1..m] of mas1;
Сделайте обычный двумерный массив. Зачем вам массив массивов? Тогда и задача будет решаться проще. И не будет иметь значения, к строкам мы применяем сортировку или столбцам.
Вот так? procedure sort1(var b:mas1); //Процедура сортировки одномерного массива ( в данной задаче столбца) var k,j:integer; begin for j:=1 to n-1 do for k:=1 to n-j-1 do
Замените в оглавлении второй процедуры mas1 на array[1..n] of Integer. Эта процедура будет сортировать одномерный масив без привязки к глобальной константе n и обьявленному типу mas1 (но будет действовать и на него). Дальше остаётся лишь поменять количество столбцов на количество строк в последней процедуре.
var
x:integer;
begin
x:=g;
g:=f;
f:=x;
end;
procedure sort1(var b:mas1); //Процедура сортировки одномерного массива ( в данной задаче столбца)
var
k,j:integer;
begin
for j:=1 to n-1 do
for k:=1 to n-j-1 do
if b[k+1]<b[k] then
change(b[k+1],b[k]);
end;
procedure Sortirov(var a:mas2);
var
k,x,i,j:integer;
begin
for i:=1 to m-1 do // (m-1)- количество столбцов
sort1(a[i]);//Сортируем i-тый столбец массива
end;

Данные процедуры отлично сортируют массив по столбцам, но можно ли с помощью этих процедур как-нибудь отсортировать массив по строкам?