PROZEDUREN UND FUNKTIONEN
BEISPIEL
Programm
Ausgabe
BEISPIEL
Programm
Ausgabe
BEISPIEL
Programm
Ausgabe
88
Stellen Sie sich nun vor, daß auch die Variable in dem Hauptprogramm
wurde. Mit ihr wird jedoch ein anderer Preis angegeben, beispielsweise der Preis für
ein Glas Bier, 320 Pfennig. Das folgende Programm führt nicht zu dem gewünschten
Ergebnis.
100 REMark Globale
110 LET prei
320
=
5
120 posten
3
130 posten
4
140 PRINT ! preis!
150 DEFine PROCedure posten(nummer)
<=
160
IF nummer
>=
170
IF nummer
180 PRINT!
preis!
190 END DEFine
930 480 480
Der Preis für das Bier wurde von der Prozedur geändert. Die Variable preis, wird als
globale Variable bezeichnet, da sie an beliebiger Stelle im Programm benutzt wer-
den kann.
Wenn die Variable preis zur lokalen Variablen erklärt wird, dann erkennt das Pro-
gramm zwei verschiedene Variablen mit dem Namen preis. Es kennt sie allerdings
nicht gleichzeitig. Solange die Prozedur ausgeführt wird, versteht es unter preis die
lokale Variable. Die vorher im Hauptprogramm
nicht verändert. Wenn die Prozedur beendet ist, wird die lokale Varialbe preis mit-
samt dem Wert, der ihr zugewiesen wurde, vollständig vergessen. Wenn Sie jetzt
wieder preis benutzen, dann versteht das Programm darunter die Variable, in der Sie
den Preis für ein Glas Bier gespeichert haben.
100 REMark LokaLe VariabLe
=
110 LET prei
320
5
120 posten
3
130 posten
4
!
140 PRINT
prei
5
150 DEFine
PROCedure posten(nummer)
160
LOCal prei
5
<=
170
IF nummer
>=
180
IF nummer
190
PRINT!
preis
200 END DEFi ne
930 480 320
Diesmal wurde das Programm richtig ausgeführt. Durch Zeile 160 wird die Variable,
preis, intern als nur zu der Prozedur, Posten, gehörig markiert. Die andere Variable,
preis, ist davon nicht betroffen. Wie Sie sehen, sind lokale Variablen sehr nützlich.
Lokale Variable sind so nützlich, daß wir die formalen Parameter von Prozeduren
automatisch zu lokalen Variablen machen. Auch wenn wir es vorher noch nicht
erwähnt haben, können Parameter, wie beispielsweise nummer in den obigen Pro-
grammen nicht mit den Variablen des Hauptprogramms
beweisen, lassen wir die LOCAL-Anweisung
benutzen nummer für den Bierpreis. Da nummer in der Prozedur lokal ist, gibt es
keine Probleme.
100 REMark Lokaler
110 LET nummer
=
120 posten
3
130 posten
4
!
140 PRINT
nummer
150 DEFine PROCedure posten(nummer)
160
LOCaL prei
5
<=
170
IF nummer
>=
180
IF nummer
190
PRINT!
prei
200 END DEFine
930 480 320
Variable
'preis'
=
3 THEN LET prei
900
5
=
4 THEN LET prei
120
5
benutzte Variable preis wird dabei
'preis'
!
=
3 THEN LET preis
900
=
4 THEN LET preis
120
aus dem obigen Programm weg und
Parameter
320
=
3 THEN LET preis
900
=
4 THEN LET prei
120
5
5
benutzt
*
+
10
nummer
*
nummer
*
+
10
nummer
*
nummer
kollidieren. Um dies zu
*
+
10
nummer
*
nummer
3/85