Funktion

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Eine Funktion ist wie in der Mathematik in der Informationstechnik zunächst eine Formel, die jedem eingegebenen X-Wert einen Y-Wert zuweist.

X = -1 : PRINT ABS(X)
Ausgabe: 1

CBM-BASIC unterscheidet grundsätzlich Funktionen nach dem Typ des Rückgabewertes, also in

  • numerische Funktionen
  • String- bzw. Zeichenkettenfunktionen
  • Ausgabefunktionen

Damit ist auch die Verwendung einer solchen Funktion vorgegeben, also ob sie etwas zu einem numerischen Ausdruck oder Zeichenkettenausdruck beiträgt oder wie im letzten Fall nur die Ausgabe beeinflusst.

Eine String- oder Zeichenkettenfunktion erkennt man üblicherweise sofort am Namen der Funktion, da dieser auf das Zeichen "$" endet, wie z.B. LEFT$. Einzige Ausnahme ist die Funktion USR(), die benutzerdefiniert ist und beide Typen zulässt, je nachdem welche Implementierung dort hinterlegt wurde.

Im weiteren Sinne können auch Unterprogramme als Funktion gelten, wenn diese ein Resultat zurück liefern. In der Regel werden in neueren Programmiersprachen die Argumente als Parameter übergeben und der Aufruf erfolgt im Kontext eines auszuwertenden Ausdrucks. Beim Commodore BASIC sind solche Übergaben bei Unterprogrammen nicht möglich, sondern es muss über den Umweg von Variablen stattfinden. Vorsicht ist dabei geboten, da eine Variable im gesamten Programm sichtbar und nutzbar ist, also somit als global gilt. Damit kann es leicht zu unerwarteten Nebenwirkungen in andere Programmteilen kommen. Auch etwaige Rückgabewerte werden dann per Konvention in bestimmten Variablen abgelegt.

10 A = 10: B = 5
20 GOSUB 100
30 PRINT A, B
99 END
100 REM *** Vertauschefunktion ***
101 C = A : A = B : B = C : C = 0: RETURN

liefert nach RUN die Ausgabe

 5    10


Das BASIC V2 des C64 bietet einige grundlegende mathematische Funktionen wie ABS, ATN, COS, EXP, INT, LOG, SGN, SIN, SQR und TAN

Einige spezielle Funktionen, die ebenfalls einen Zahlwert zurückgeben:

  • RND für den Aufruf von Zufallszahlen
  • DEF zur eigenen mathematischen Funktionsdefinition und FN für den anschließenden Funktionsaufruf
  • PEEK zum Auslesen von Speicherstellen
  • FRE zur Feststellung des freien RAM-Speichers unter BASIC V2
  • POS liefert die aktuelle Cursor-Position.

Die benutzerdefinierte Funktion USR ruft ein Maschinenspracheprogramm auf und gibt entweder einen Zahlenwert oder eine Zeichenkette zurück an den umgebende Ausdruck, der vom Typ dazupassen muss.

Weiterhin gibt es Funktionen zur String-Behandlung:

Die Ausgabefunktionen

liefern keinen Wert zurück, sondern beeinflussen nur das aktuelle oder angegebene Ausgabegerät und können damit nur bei den Ausgabebefehlen PRINT, PRINT# und CMD verwendet werden.