Ausfüllen eines Lottoscheins in PASCAL

Ein Beispiel für die Verwendung des Datentyps SET
und für ausführliche Kommentare


PROGRAM Lotto;
CONST max    = 49;                  (* aus 49 Kugeln    *)
      anzahl = 6;                   (* werden 6 gezogen *)
TYPE Lottozahl	 = 1..max;
     Lottoschein = SET OF Lottozahl;
VAR zahl   : Lottozahl;
    schein : Lottoschein;
    k : INTEGER;

BEGIN
   schein := [];                    (* Am Anfang ist schein leer,                   *)
   k := 0;                          (* d.h. k = 0 Zahlen sind angekreuzt.           *)
   REPEAT                           (* Wiederhole:                                  *)
      zahl := random(49) + 1;       (*   Waehle zahl zufaellig in {1, ..., 49}.     *)
      IF NOT(zahl IN schein) THEN   (*   Falls zahl noch nicht auf dem Schein ist,  *)
      BEGIN
       	 schein := schein + [zahl]; (*   dann nehme zahl in den schein auf,         *)
       	 k := k + 1                 (*   d.h. es wird eine weitere Zahl angekreuzt. *)
      END
   UNTIL k = anzahl;                (* bis anzahl Zahlen angekreuzt sind.           *)

   (* Ausgabe *)
   WriteLn('Wir schlagen folgende Lottozahlen vor:');
   FOR zahl := 1 TO 49 DO
      IF zahl IN schein THEN Write(zahl,'  ')
END.