program Sortowanie;
uses crt;
type
dane = array[1..50] of integer;
var
a : dane;
n,i : integer;
c : char;
procedure Linia;
begin
TextBackGround(1);
TextColor(15);
Write(' ');
TextBackGround(0);
Writeln;
end;
procedure Wczytajdane;
begin
ClrScr;
Write('Podaj ilosc elementow: ');
Readln(n);
for i:=1 to n do
begin
Write('Podaj element (',i,'): ');
Readln(a[i]);
end;
end;
procedure Wypiszdane;
begin
for i:=1 to n do
begin
Writeln('Wartosc elementu (',i,'): ',a[i]);
end;
end;
procedure Prostewybieranie(var d : dane; l : integer);
var
i,j,k,x: integer;
begin
for i:=1 to l-1 do
begin
k:=i;
x:=d[i];
for j:=i+1 to l do
if d[j]
k:=j;
x:=d[j];
end;
d[k]:=d[i];
d[i]:=x;
end;
Wypiszdane;
readkey;
end;
procedure Babelek(var d : dane; l : integer);
var
i,j,x : integer;
begin
for i:=2 to n do
begin
for j:=n downto i do
if d[j-1]>d[j] then
begin
x:=d[j-1];
d[j-1]:=d[j];
d[j]:=x;
end;
end;
Wypiszdane;
readkey;
end;
{procedure Metoda3(var d : dane; l : integer);
begin
end;}
procedure Menu(var ch : char);
begin
ClrScr;
Linia;
Writeln;
Writeln(' 1 - WCZYTAJ DANE');
Writeln(' 2 - SORTUJ PRZEZ PROSTE WYBIERANIE');
Writeln(' 3 - SORTUJ METODA BABELKOWA');
Writeln;
Writeln(' 0 - WYJSCIE');
repeat
ch:=readkey;
until ch in ['0'..'3'];
end;
begin
repeat
Menu(c);
case c of
'1' : Wczytajdane;
'2' : Prostewybieranie(a,n);
'3' : Babelek(a,n);
end;
until c='0';
{ Prostewybieranie(a,n);
Babelek(a,n); }
end.