program bubble_sort;
uses crt;

type worte = string[50];
const maxN = 250;

var  a   : array[1..maxN] of worte;
     N   : integer;


procedure bubble;
var k,l  : integer;
    t    : worte;
begin
 for k:=N downto 1 do
  for l:=2 to k do
    if a[l-1]>a[l] then begin
                          t:=a[l-1];
                          a[l-1]:=a[l];
                          a[l]:=t;
                        end;
end;



procedure read_array;
var k : integer;
begin
 writeln('Geben Sie das array der Strings ein ! .  ( Ende mit CR ! ) ');
 writeln;writeln;
 k:=1;
 repeat
   write('a[',k,']  ?  '); readln(a[k]);
   k:=k+1;
 until a[k-1]='';
 N:=k-2;
end;


procedure read_array_von_datei( datei :string);
var dat : text;
    i   : integer;
begin
 assign(dat,datei);
 reset(dat);
 i:=0;
 if not eof(dat) then
   repeat
    i:=i+1;
    readln(dat,a[i]);
   until eof(dat);
 N:=i;
 close(dat);
end;




procedure print_array(ab : integer);
var k:integer;
begin
 for k:=ab to N do  writeln(a[k]);
 writeln('*** ende *** ');
end;




begin
 clrscr;
 writeln('                    *** Bubble Sort *** ');  writeln;writeln;
 read_array_von_datei('sorting.asc'); readln;
 clrscr;
 print_array(1);     readln;
 bubble;             writeln;writeln;
 print_array(1);     readln;
end.