program adrliste_pas(input,output);
uses crt;

type KartenZeiger = ^Karte;
     Karte = record
                  Name   : string[40];
                  Strasse: string[40];
                  PlzOrt : string[40];
                  TelNum : string[12];
                  next   : KartenZeiger;
             end;

var Erste   : KartenZeiger; {Der Zeiger auf das erste Element}
    Eingabe : Integer;      {Die Eingabe im Hauptmenu}


procedure Zeige(Karte: KartenZeiger);
begin
     ClrScr;
     with Karte^ do begin {Nacheinander die Daten ausgeben}
          WriteLn('Name   :',Name);
          WriteLn('Strasse:',Strasse);
          WriteLn('PlzOrt :',PlzOrt);
          WriteLn('TelNum :',TelNum);
     end
end;

procedure Anhaengen;
Var Neue: KartenZeiger;
begin
     New(Neue);
     With Neue^ do begin
          WriteLn('Bitte eingeben:');
          Write('Name   :') ; ReadLn(Name);
          Write('Strasse:') ; ReadLn(Strasse);
          Write('PlzOrt :') ; ReadLn(PlzOrt);
          Write('TelNum :') ; ReadLn(TelNum);
          next:=Erste;  {vorne hinh„ngen geht schneller!}
     end;
     Erste:=Neue;
     Zeige(Erste);
end;

Procedure Suchen;
Var Aktuelle: KartenZeiger;
    SuchName: string[40];   {Der Name, nach dem gesucht wird}
begin
     Aktuelle:=Erste;
     WriteLn('Bitte Namen eingeben:');
     ReadLn(suchName);
     While Aktuelle<>NIL do begin
           if Aktuelle^.Name = SuchName THEN begin
              Zeige(Aktuelle); {Anzeigen}
              Aktuelle:=NIL    {Suche Abbrechen}
           end else begin
              Aktuelle:=Aktuelle^.next;
              if Aktuelle=NIL THEN begin
                 ClrScr;WriteLn;
                 WriteLn('Nicht gefunden!');
                 WriteLn;WriteLn
              end
           end
     end
end;


begin
     Erste:=NIL;
     ClrScr;
     Repeat
           WriteLn('1=Neue Adresse, 2=Suchen eines Satzes, 99=Ende');
           ReadLn(Eingabe);
           case Eingabe of
                1: Anhaengen;
                2: Suchen
           end;
     until eingabe=99;
end
.