program prak4t(input,output); {Aufgabe 4.6 von RenÉ Scholz}
uses crt;
const leerstring='                                                  ';

type

     words    = array[1..50] of char;
     woerter  = ^worte;
     vektoren = ^matrix;

     worte=record
             wort        : words;  {array [1..50] of char}
             naechstes   : woerter;
          end;

     matrix=record
               zeile           :words;  {array [1..50] of integer}
               neachste_zeile  :vektoren;
            end;



var erstes,altes,neues   :woerter;
    i,z,anzahl           :integer;
    stop                 :boolean;
    wortw                :words;  {array[1..50] of char}
    erste,
    letzte,
    aktuelle             :vektoren;



procedure lies_string;
var f,k :integer;
begin
for f:=1 to 50 do
 begin
 read(neues^.wort[f]);
 if ord(neues^.wort[f])=13 then
  begin
   for k:=f to 50 do
    neues^.wort[k]:=' ';
   f:=50;
  end;
 end;
end;


procedure lies_wort_w;
var f,k :integer;
begin
for f:=1 to 50 do
 begin
 read(wortw[f]);
 if ord(wortw[f])=13 then
  begin
   for k:=f to 50 do
    wortw[k]:=' ';
   f:=50;
  end;
 end;
end;


function test(testword :words):boolean;
var  feld  :words;
     k     :integer;
begin
 feld:=testword;
 for k:=1 to 50 do
  begin
  end;
end;



begin       {Main}
 clrscr;
 new(neues);
 erstes:=neues;
 erstes^.wort:=leerstring;
 erstes^.naechstes:=nil;
 neues:=erstes;
 altes:=erstes;
 stop:=false;
 i:=0;
 writeln('Die Woerter koennen maximal 50 Zeichen lang sein ! ');

repeat
  new(neues);
  i:=i+1;
  write('Wort ',i,' ?  ');lies_string;   {(neues^.wort)}
  if neues^.wort[1]=' ' then
   begin
    dispose(neues);
    neues:=altes;
    stop:=true;
    i:=i-1;
   end

  else
   begin
    altes^.naechstes:=neues;
    altes:=neues;
   end;
 anzahl:=i;
until stop=true;

neues^.naechstes:=nil;


clrscr;
write('Geben Sie das Wort w ein ! ');
{readln(wortw);}
lies_wort_w;

writeln;
writeln('Sie haben ',anzahl,' Woerter eingegben , sowie das Wort w=',wortw);

repeat until keypressed;

end.