c
SuperBASIC Funktionen und Prozeduren werden mit den Anweisungen
FuNction und DEFine PROCedure definiert. Eine Funktion wird durch Eingabe ihres
Namens in einem SuperBASIC-Ausdruck
Ausdruck enthalten sein, da sie einen Wert liefert, der verarbeitet werden muß. Eine
Prozedur wird aufgerufen, indem ihr Name als erstes Element in einer SuperBASIC-
Anweisung eingegeben wird.
Daten können an eine Funktion oder Prozedur übergeben werden, indem im
Anschluß an den Funktions- oder Prozedurnamen eine Liste mit aktuellen Parame-
tern angehängt wird. Diese Liste wird mit einer entsprechenden Liste verglichen, die
bei der Definition an den Namen der Funktion oder Prozedur angehängt wurde.
Diese zweite Liste enthält die formalen Parameter der Funktion oder der Prozedur.
Bei den formalen Parametern muß es sich um SuperBASIC-Variablen
den aktuellen Parametern muß es sich um eine Tabelle, einen Tabellen-Teil oder
einen SuperBASIC-Ausdruckhandeln,
die einfachste Form eines Ausdrucks darstellt.
Mit den formalen Parametern wird nur angegeben, wie die aktuellen Parameterverar-
beitet werden müssen. Die Elemente in jeder Parameterliste werden paarweise in
der richtigen Reihenfolge zusammen mit der Funktion oder Prozedur aufgerufen. Die
formalen Parameter werden dann gleichbedeutend
Es gibt drei verschiedene Möglichkeiten, Parameter zu benutzen.
Handelt es sich bei dem aktuellen Parameter um eine einzelne Variable und werden
dem formalen Parameter in der Funktion oder Prozedur Daten zugewiesen, so wer-
den die Daten auch dem entsprechenden
Handelt es sich bei dem aktuellen Parameter um einen Ausdruck, so hat die Zuwei-
sung von Daten an den entsprechenden
außerhalb der Prozedur. Eine Variable wird zu einem Ausdruck, indem sie in Klam-
mern gesetzt wird.
Handelt es sich bei dem aktuellen Parameter um eine Variable, wurde ihr jedoch vor-
her kein Wert zugewiesen, so wird durch Wertzuweisung an den entsprechenden
formalen Parameter die Variable besetzt, die als aktueller Parameter angegeben
wurde.
Variablen können mit der Anweisung LOCal als lokal in einer Funktion oder Prozedur
definiert werden. Lokale Variablen haben keine Auswirkung auf Variablen mit dem-
(
selben Namen außerhalb der Funktion oder Prozedur, in der sie definiert sind. Auf
diese Weise können bedeutungsvolle
ohne daß externe Variablen dadurch beeinflußt werden. Eine lokale Variable ist für
jede Funktion oder Prozedur verfügbar, die aus der Prozedur oder Funktion aufgeru-
fen wird, in der die Variable als lokale Variable deklariert wurde. Dies gilt nicht, wenn
die aufgerufene Funktion oder Prozedur eine weitere lokale Variable mit demselben
Namen enthält.
Funktionen und Prozeduren in SuperBASIC können rekursiv benutzt werden. Das
heißt, eine Funktion oder Prozedur kann sich selbst direkt oder indirekt aufrufen.
Befehl
DEFine FuNction
DEFine PROCedure
RETurn
LOCal
(
3/85
aufgerufen. Die Funktion muß in einem
wobei eine einzelne Variable oder Konstante
mit den aktuellen Parametern.
aktuellen Parameter zugewiesen.
formalen Parameter keine Auswirkungen
Variablennamen freier ausgewählt werden,
Funktion
Definiert eine Funktion
Definiert eine Prozedur
Verläßt eine Funktion oder Prozedur
(gibt Daten aus einer Funktion zurück)
Definiert lokale Daten in einer Funktion
oder Prozedur
FUNKTIONEN
UND
PROZEDUREN
DEFine
handeln. Bei
21