Suche nach einem Namen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

AddressBook.om
(* search for an entry by a name *)
Write.String("Name: "); Read.Line(name);
index := 0;
WHILE (index < maxentries) &
      (~addressBook[index].used OR
         (addressBook[index].name # name)) DO
   INC(index);
END;
IF index = maxentries THEN
   Write.Line("Sorry, not found!");
ELSE
   Write.String(addressBook[index].name);
   Write.String(", ");
   Write.Line(addressBook[index].city);
END;

*Die WHILE-Schleife darf erst beendet werden, wenn wir das Adreßbuch vollständig durchgeschaut haben oder wir einen Eintrag mit dem gewünschten Namen gefunden haben. Bei letzterem dürfen natürlich nur genutzte Einträge betrachtet werden.
 
*Alternativ könnte die WHILE-Bedingung nach der Anwendung der de Morgan'schen Regel auch so formuliert werden:

WHILE (index < maxentries) &
      ~(addressBook[index].used &
         (addressBook[index].name = name)) DO

Welche Variante nun bevorzugt wird, ist Geschmackssache.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005