PROZEDUREN UNO FUNKTIONEN
Programm
92
160 wahL geri cht
270 DEFine PROCedure wahL(gericht)
280
FOR aussuchen
290
LET nummer = RND(1 TO 3)
300
LET geri cht (nummer) = geri cht (nummer)
310
END FOR aussuchen
320 END DEFi ne
Beachten Sie, daß der formale Parameter gericht sowohl:
- lokal in der Prozedur Wahl ist,
- als auch eine Tabelle im Hauptprogramm darstellt.
Die sechs Werte werden an die globale Tabelle zurückgegeben, die ebenfalls den
Namen Gericht trägt. Diese Werte werden dann an die Prozedur kellner übergeben.
170 keLLner
gericht,
330 DEFine PROCedure keLLner(gericht,
340
rechnen
gericht,
350
koch geri cht
360 END DEFine
Der Kellner übergibt die Information über die Nummer jedes bestellten Gerichtes an
die Prozedur, rechnen, die die Kosten berechnet.
370 DEFine PROCedure rechnen(gericht,insgesamt)
380
LET i ngesamt = 0
390
FOR k = 1 TO 3
400
LET rechnung
410 END FOR k
420 END DEFi ne
Der Kellner gibt die sei ben Informationen noch an den Koch, der einfach die erfor-
derliche Nummer für jeden Menü-Posten ausdruckt.
430 DEFine PROCedure koch(gericht)
440
FOR c = 1 TO 3
450
PRINT!
geri cht (c)
460
END FOR c
470 END DEFi ne
Auch hier ist wieder die Tabelle, gericht, in der Prozedur koch lokal. In ihr werden die
Informationen übergeben, die die Prozedur in der PRINT-Anweisung benutzt.
Das vollständige Programm wird nachfolgend aufgeführt.
100 REMark Prozeduren
110 RESTORE490
120 DIM posten$(3,8),
130 REMark ***
Programm ***
140 LET trinkgeLd
150 einLesen
160 wahL gericht
170 keLLner
gericht,
180 LET rechnung
190 PRINT "Sie
müssen insgesamt
" bezahLen"
200 REMARK***
Def i ni ti onen der
210 DEFine PROCedure einLesen
220
FOR k = 1 TO 3
230
READ posten$(k)
240
READ prei s (k)
250
END FOR k
260 END DEFine
270 DEFine PROCEdure wahL (gericht)
280
FOR aussuchen
290
LET nummer = RND(1 TO 3)
300
LET geri cht (nummer) = geri cht (nummer)
= 1 TO 6
rechnung
kosten
+
= rechnung
gericht(k)*preis(k)
! pos t ens Cc)
preis(3),
gericht(3)
=.1
rechnung
+
= rechnung
tri
nkgeLd * rechnung
DM"
! rechnung
Prozeduren
= 1 TO 6
+
1
kosten)
***
+
1
3/85
c
(