Modula
55 kbyte
Diese Programmbeispiele entsprechen den Originalaufgaben des Praktikums im WS 99 an der Friedr.-Schiller Universität Jena.
Beschreibung
Modula - das ist diese absichtlich etwas unhandliche Programmiersprache, die an deutschen Universitäten gelehrt wird. Der Urvater dieses "Monsters" ist Pascal. Die heutige Version setzt als Präprozessor auf einer veralteten Unix-Version von C++ auf. Nichtsdestotrotz ist genau das der Standard an verschiedenen Hochschulen, wie zum Beispiel in Jena...
Aber hey! Es gibt schlimmeres. (Ada zum Beispiel!)
Quelltext
Dieser Codeauszug zeigt ihnen, wie sie eine Abfrage über ein Menü geschickt implementieren ...
VAR Wahl : CHAR;
Die WHILE Schleife gibt ihnen die Möglichkeit, das Menü zu übergehen, indem sie Wahl auf die Abbruchbedingung setzen - falls sie dies nicht wollen, ersetzen sie diese Anweisung durch DO-UNTIL
WHILE Wahl# 'q' DO
IO.Put("\n[1] Option 1\n");
das Menü ...
IO.Put("[2] Option 2\n");
IO.Put("[3] Option 3\n");
IO.Put("[q] Beenden\n");
'Wahl' ist aus einem guten Grund vom Typ Char, wäre die Variable
ein Integerwert, würden die Fälle, in denen der Nutzer fälschlicherweise keinen
gültigen Integerwert eingegeben hätte eine Ausnahmesituation erzeugen, die abfangen
müssen, ansonsten würde ihr Programm abstürzen. Dies bleibt ihnen hier erspart.
Wahl:= IO.GetChar();
EVAL IO.GetLine(); mit dieser Anweisung löschen wir Zeichen, die unter Umständen im
Tastaturpuffer verblieben sind
Dies ist sehr wichtig. Vergessen sie die Anweisung an dieser
Stelle, kann das zur Laufzeit ernsthafte Fehler nach sich ziehen, vor denen sie nicht
jeder Compiler warnen muss...
(**Ereignisbehandlung**)
CASE Wahl OF
hier folgt nun die eigentliche Fallunterscheidung
| '1' => die Anweisungen im Fall 1...
| '2' => die Anweisungen im Fall 2...
| '3' => und die Anweisungen im Fall 3
ELSE nicht vergessen!
Fehlt dieser Eintrag zeugt das (selbst wenn der ohnehin Zweig leer ist) nicht nur von schlechtem Stil, der Compiler belästigt sie auch mit einer entsprechenden Warnung.
END;
END;
(ac/tom) Diskussion