program Sortowanie;

uses crt;

type tablica = array[1..50] of integer;

var

dane : tablica;

MaxCounter,Counter : integer;

c : char;

procedure Linia;

begin

TextBackGround(1);

TextColor(15);

Write(' ');

TextBackGround(0);

Writeln;

end;

procedure WczytajArgumenty;

begin

ClrScr;

Write('Podaj liczbe elementow: ');

Readln(MaxCounter);

for Counter:= 1 to MaxCounter do

begin

Write('Podaj element (', Counter,'): ');

Readln(dane[Counter]);

end;

end;

procedure Wyswietldane;

begin

for Counter:=1 to MaxCounter do

begin

Writeln('Wartosc elementu (', Counter,'): ',dane[Counter]);

end;

end;

procedure WybieranieProste(var dane2 : tablica; MaxCounter2 : integer);

var

Counter,j,k,x: integer;

begin

for i:= Counter to MaxCounter2 - 1 do

begin

k:= Counter;

x:= dane2[Counter];

for j:= Counter +1 to MaxCounter2 do

if dane2[j]

begin

k:=j;

x:= dane2[j];

end;

dane2[k]:= dane2[Counter];

dane2[Counter]:=x;

end;

Wyswietldane;

readkey;

end;

procedure Babelek(var dane3 : tablica; MaxCounter3 : integer);

var

Counter,j,x : integer;

begin

for Counter:=2 to MaxCounter3 do

begin

for j:= MaxCounter3 downto Counter do

if dane3[j-1]> dane3[j] then

begin

x:= dane3[j-1];

dane3[j-1]:= dane3[j];

dane3[j]:=x;

end;

end;

Wyswietldane;

readkey;

end;

procedure Menu(var znak : char);

begin

ClrScr;

Linia;

Writeln;

Writeln(' 1 - Wczytanie danych');

Writeln(' 2 - Sortowanie poprzez proste wybieranie);

Writeln(' 3 - Sortowanie za pomoca metody babelkowej);

Writeln;

Writeln(' 0 - Wyjscie z programu');

repeat

znak:=readkey;

until znak in ['0'..'3'];

end;

begin

repeat

Menu(znak);

case znak of

'1' : WczytajArgumenty;

'2' : WybieranieProste(a,n);

'3' : Babelek(a,n);

end;

until znak ='0';

WybieranieProste(a,n);

Babelek(a,n);

end.