In Starbasic gibt es zwei Arten Variablen zu deklarieren. Implizit und Explizit.
Bei der impliziten Deklaration wird die Variable automatisch mit ihrer ersten Verwendung
deklariert.
Das macht das Programmieren auf den ersten Blick einfach, weil man einfach mit der Zeile
Eingabe = 2
die Variable Éingabe deklariert. Der Nachteil ist aber das man später bei Tippfehler
zum Beispiel
auch sofort eine neue Variable "Engabe" generiert. Der Interpreter erzeugt zusätzlich eine
neue
Variable und die existiert neben der ersten Variable. Man hat also versehentlicvh zwei Variablen.
Dies kann zu langwierigen Fehlersuche führen.
Dieses Risko kann man mit der expliziten Deklaration umgehen. Durch den Befehl Option
Explicit am Anfang des Moduls wird der Interpreter angewiesen nur explizit deklarierte Variablen
zu aktzeptieren.
Eine explizite Deklaration der Variablen erfolgt durch den Befehl "Dim".
Dim MyVariable as Integer
Integer ist ein Variablentyp zu dem wir gleich kommen. Wenn jetzt im Programm versehentlichen
irgendwo "MVariable" steht, erzeugt der Interpreter eine Fehlermeldung.
Es ist Starbaisc dabei egal an welcher Stelle die Variable deklariert wird. Man kann
sie am Anfang
der Prozedur alle gemeinsam oder erst in der Zeile vor der ersten Verwendung einzeln deklarien.
Guter Programmierstil ist die Variablen am Anfang festzulegen, da damit die Übersichtlichkeit über
den Code besser ist. Einige andere Programmiersprachen erzwingen sogar solch ein Vorgehen.
Noch eine wichtige Bemerkung zu Variablendeklaration in Starbasic. Jede Variable erhält
ohne
explezite Deklaration automatisch den Typ Variant. Das ist soweit eigentlich kein Problem, aber
Starbasic interpretiert jede Variable ohne Typenbezeichnung als Variant. Eine Aufzählung
von
Variablen mit anschließender Deklaration des Typen, wie in anderen Programmiersprachen üblich
geht daher nicht.
Die Zeile:
Dim i1,i2 as Integer,
intepretiert Starbasic als i1 = Variant und i2 = integer.
Das ist auf den ersten Blick nicht schlimm, wenn man aber den Variablen Werte zuweist
kann es
zu Problemen kommen.
Im obigen Fall kann es dann passieren das die Werte falsch interpretiert werden.
Dies kann
besonders bei der Verwechslung von Integer- und Double-Variablen passieren. Wenn man den
Wert einer Double Variablen einer Integer-Variablen zuweist. Dabei wird die Zahl nämlich zu einer
Integer-Zahl gerundet.
Um beide wirklich als Integer zu deklarieren muß man diese einzeln deklarieren.
Dim i1 as integer,i2 as Integer.
Dazu ein Beispiel:
i1= 3
i2= 2.5
Ergebnis=i1*i2
Ohne jede Deklaration ist das Ergebnis 7,5,
Dim i1,i2,i3 as integer -> führt zu dem Ergebnis 8,
Dim i1,i2 as integer, i3 as integer -> führt zu dem Ergebnis 9,
ebenso führt Dim i1 as integer, i2 as integer, i3 as integer zu dem Ergebnis 9.
Ich denke die möglichen Probleme mit falschen Deklarationen sind daraus nachvollziehbar.
Tipp: Jede Variable in einer eigenen Zeile dimensionieren.