Konstante

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Eine Konstante ist ein nach der Festlegung nicht mehr veränderlicher Wert. Das Gegenteil einer Konstante ist eine Variable.

Das BASIC des C64 kennt zwei Arten von Konstanten.
Einerseits sind das konstante Werte als numerische Fließkommazahlen in Fixpunkt- oder Eponentialdarstellung und Zeichenketten eingeschlossen in doppelte Hochkomma. Ein Spezialfall ist dabei die Zahl π (PI) mit dem C64-Wert 3.14159265. PI wird über die Tastatur als SHIFT    eingegeben, wobei intern im BASIC-Interpreter das Symbolzeichen auch gleichzeitig das Token darstellt und führt bei der Auswertung eines Ausdrucks unmittelbar zum entsprechenden Wert.
Auf der anderen Seite verbergen sich viele andere Konstante in unterschiedlichen Basic-Funktionen, wie etwa EXP, SIN, COS, TAN, SQR etc., wo aufgrund der iterativen Berechnung des Funktionswertes verschiedene Hilfswerte als interne Konstanten nötig sind (siehe Aufzählung unten).

Mathematische Konstanten wie etwa die Eulersche Zahl e (siehe Weblinks) lassen nur mit Hilfe diverser Basic-Funktionen berechnen. Bei der Konstanten e führt dies mit der Funktion EXP zum C64-Wert 2.71828183 (e ist die Basis der Exponentialfunktion e hoch x und hat als Umkehrfunktion den natürlichen Logarithmus, welcher sich durch die Basic-Funktion LOG berechnen lässt). Der Wert dieser Konstante zeigt sich mit dem Befehl PRINT EXP(1).

Es gibt sonst keine Möglichkeit unter BASIC V2, in einem Programm namentliche Konstanten zu definieren. Man kann allenfalls Variablen mit einem bestimmten Wert initialisieren und danach im Programm nicht mehr verändern (die Unveränderlichkeit ist dann allerdings seitens BASIC nicht garantiert) und hätte auf diese Weise eine Konstante simuliert. Dies hat aber sonst auch hinsichtlich der Wartbarkeit und Ausführungszeit von Programmen deutliche Vorteile.

Der BASIC-Interpreter arbeitet intern mit einer ziemlich umfangreichen Sammlung von Konstanten verschiedener Typen, z.B. sind alle Fehlermeldungstexte, sämtliche Schlüsselwörter bzw. Befehlswörter (für LIST) und weitere Systemmeldungstexte als interne String-Konstanten abgelegt (so auch das berühmte "READY.").

Einige numerische Konstanten des C64 (im Fließkomma-Format, engl. Float, also 5 Bytes lang) seien hier kurz aufgezählt (Adresse, Wert):

$AEA8: π
$B9BC: 1
$B9DB: 2
$B9D5: 1/2
$B9E5: LOG(2)
$BFBF: 1/LOG(2)
$BAF9: 10
$E2E5: 2*π
$E3BA: .811635157 (RND-Seed)

Und viele weitere (siehe auch unter KERNAL) ...

Bei der Auswertung von Ausdrücken im BASIC-Interpreter ist die Konstante π (PI) übrigens der kürzeste und zugleich schnellste Ausdruck. Jeder anderer Ausdruck (selbst die Minimalvariante einer Zahlenkonstante, nämlich ein einzelner Punkt (.), entspricht dem Wert 0) erfordert mehr oder weniger zeitraubende Berechnungen oder Umwandlungen. Die Verwendung von π ist somit dort von Vorteil und zur Effizenzsteigerung bzw. zeitlichen Optimierung von BASIC-Programmen einsetzbar, wo z.B. Funktionen einen Parameter syntaktisch benötigen, diese aber dann nicht weiter verwenden, wie etwa bei FRE oder POS.

Während numerische Konstanten (abgesehen von π) im BASIC-Programm immer aufwendig bei jeder Verwendung in die interne Fließkommadarstellung umgewandelt werden müssen, werden Zeichenketten direkt, wie sie im Programm abgelegt sind, referenziert.

[Bearbeiten] Weblinks

WP-W11.png Wikipedia: Pi
WP-W11.png Wikipedia: Eulersche Zahl
WP-W11.png Wikipedia: Seed