Nachfolgend ein weiteres Beispiel, in dem dargelegt wird, wie Prozeduren ein Pro-
gramm modular gestalten.
In Chans China-Restaurant werden sechs Gerichte bestellt, wobei die Speisekarte
folgende Gerichte umfaßt:
Posten-N ummer
1
2
3
Nun schreiben Sie Prozeduren für die folgenden Aufgaben:
1. Erstellen Sie zwei Tabellen mit jeweils drei Elementen, in denen das Menü, die
Gerichte und Preise gespeichert werden. Benutzen Sie eine DATA-Anweisung.
2. Simulieren Sie eine Bestellung für sechs zufällig ausgewählte Gerichte mit Hilfe
einer Prozedur. Prüfen Sie, wie oft jedes Gericht ausgewählt wurde.
3. Übergeben Sie die drei Zahlen an eine Prozedur, kellner, die wiederum die
Kosten der Bestellung mit Hilfe eines Parameters kosten an das Hauptprogramm
zurückgibt. Die Prozedur, kellner, ruft zwei weitere Prozeduren, rechnen und koch
auf. Sie berechnen die Kosten und simulieren das "Kochen".
4. Die Prozedur koch, druckt einfach die erforderliche Zahl und den Namen jedes
Gerichtes aus.
Das Hauptprogramm ruft Prozeduren nach Bedarf auf, ermittelt die Gesamtkosten
aus der Prozedur kellner, addiert 10% für Trinkgeld und druckt den Betrag der
Gesamtrechnung aus.
Mit diesem Programm wird die Parameterübergabe auf relativ komplexe Weise dar-
gestellt. Wir werden das Programm Schritt für Schritt erläutern, bevor wie es zusam-
mensetzen.
100 REMark Prozeduren
110 RESTORE490
120 DIM posten$(3,7),
130 REMark
140 LET tri
150 einLesen
210 DEFine PROCedure einLesen
220
230
240
250
260 END DEFi ne
490 DATA "GarneLen",
Die Namen der Menü-Posten und ihre Preise werden in die Tabellen postenS und
preis gesetzt.
Als nächstes wird eine Menü-Nummerfür jeden der sechs Gäste gewählt. Die Num-
mer jedes bestellten Gerichtes wird in der Tabelle gericht gespeichert.
(
3/85
Gericht
Garneelen
Hühnchen
Spezial
prei s (3)
***
***
Programm
nkgeLd
.1
=
FOR k
1 TO 3
=
READ posten$(k)
READ prei s (k)
END FOR k
3.5,
"SpeziaL",
3.3
Preis
3.50
2.80
3.30
, geri cht (3)
"Hühnchen",
2.8,
PROZEDUREN
UNO FUNKTIONEN
BEISPIEL
Aufbau
91