четверг, 10 октября 2013 г.

Программа сортировки элементов ниже побочной диагонали

Данная программа отсортирует все элементы матрицы, находящиеся ниже побочной диагонали. 3 процедуры: ввод, сортировка и вывод.

const N=3;
type mas=array[1..N,1..N] of integer;
mass=array[1..(N*N-N) div 2] of integer;


procedure vvod(var m:mas);
var i,j:integer;
begin
randomize();
for j:=1 to N do
begin
for i:=1 to N do
begin
m[i,j]:=random(100)-50;
write(m[i,j]:4);
end;
writeln();
end;
writeln;
writeln;
end;

procedure vivod(m:mas);
var i,j:integer;
begin
for j:=1 to N do
begin
for i:=1 to N do
write(m[i,j]:4);
writeln();
end;
end;

procedure sort(var m:mas);
var i,j,k,b:integer;
a:mass;
begin
k:=1;
for j:=2 to N do
begin
for i:=N downto N-j+2 do
begin
a[k]:=m[i,j];
k:=k+1;
end;
end;


for j:=1 to ((N*N-N) div 2) do
begin
for i:=1 to ((N*N-N) div 2)-j do
begin
if(a[i]<a[i+1])then
begin
b:=a[i];
a[i]:=a[i+1];
a[i+1]:=b;
end;
end;
end;


k:=1;
for j:=2 to N do
begin
for i:=N-j+2 to N do
begin
m[i,j]:=a[k];
k:=k+1;
end;
end;

end;

var m:mas;
begin
vvod(m);
sort(m);
vivod(m);
end.