PROZEDUREN
UNO FUNKTIONEN
BEISPIEL
Programmänderungen
TYPEN LOSE
PARAMETER
Programm
Ausgabe
GELTUNGS-
BEREICH DER
VARIABLEN
94
Sämtliche Variablen, die als formale Parameter in Prozeduren oder Funktionen
benutzt werden, sind "sicher", da sie automatisch lokal sind. Welche Variablen, die in
den Prozeduren oder Funktionen benutzt werden, sind nicht lokal? Welche zusätzli-
chen Anweisungen sind erforderlich, um sie zu lokalen Variablen zu machen?
Die Variablen k, pick und nummer sind nicht lokal. Deshalb müssen folgende Ände-
rungen an ihnen vorgenommen werden:
LOCAL k, nummer
LOCAL aussuchen
Normalen Parametern ist kein Typ zugeordnet. Möglicherweise
eine Variable, die Zahlen verarbeitet, wie eine numerische Variable aussieht, und daß
eine Variable zur Verarbeitung von Strings wie eine String-Variable aussieht. Wie
immer Sie Ihre Parameter jedoch schreiben, Sie haben keinen Typ. Dies wird durch
folgendes Programm unterstrichen.
100 REMark ZahL oder
110 keLLner
2
120 keLLner
"Hühnchen"
130 DEFine
PROCedure
140
PRINT!
posten!
150 END DEFi ne
2 Hühnchen
Der Typ des Parameters wird erst bestimmt, wenn die Prozedur aufgerufen wird und
ein aktueller Parameter "kommt".
Betrachten Sie folgende Programm und ermitteln Sie, welche beiden Zahlen ausge-
geben werden:
100 REMark AusbL i ck
110 LET zahL
1
=
120 test
130 DEFine
PROCedure
140
LOCa L zah L
150
LET zah L
2
=
160
PRINT zahL
170
versuch
180 END DEFine
190 DEFine
PROCedure
200
PRINT zahL
210 END DEFi ne
Natürlich wird als erste Zahl die 2 ausgedruckt. Ist jedoch die Variable zahl in Zeile
200 global?
Die Antwort hierauf ist, daß der Wert von zahl in Zeile 160 in die Prozedur versuch
übertragen wird. Eine Variable, die in einer Prozedur lokal ist, bleibt in einer zweiten
Prozedur, die von der ersten aufgerufen wird, dieselbe Variable.
Wird die Prozedur versuch von dem Hauptprogramm aufgerufen, so bleibt auch die
Variable zahl in dem Hauptprogramm und in der Prozedur, versuch, dieselbe Zahl.
Diese Tatsachen mögen auf den ersten Blick seltsam erscheinen, sind jedoch
logisch.
1. Die Variable zahl in Zeile 110 ist global.
2. Die Variable zahl in der Prozedur test ist eindeutig in der Prozedur lokal.
3. Die Variable zahl in der Prozedur versuch "gehört" zu dem Teil des Programms,
der sie als letztes aufgerufen hat.
In diesem Abschnitt wurden viele Themen behandelt, da die SuperBASIC-Funktio-
nen und Prozeduren sehr leistungsfähig sind. Allerdings sollten alldiese Möglichkei-
ten nicht sofort benutzt werden. Benutzen Sie die Prozeduren und Funktionen am
Anfang auf einfache Art und Weise. Sie können sehr wirksam sein und ihre Lei-
stungsfähigkeit steht Ihnen bei Bedarf jederzeit zur Verfügung.
Wort
keLLner(posten)
test
versuch
(
möchten Sie, daß
(
3/85
(