Rob´s BB-Kurs 2

Variablen und Felder


© Robert Gerlach 2001-2002

www.robsite.de


In Variablen kann man Werte speichern. Ja! Wirklich! Nur kann man nicht in jeder Variablen alles speichern. So braucht man für Text andere als für Zahlen u.s.w. Die verschiedenen Variablentypen werden mit verschiedenen Zeichen am Ende gekennzeichnet:


[nichts] oder % für Integerzahlen (ohne Komma).

#               für Float- (Komma) Zahlen auf 6 Stellen genau.

$               für Strings, also Text.



Strings müssen immer in Anführungszeichen stehen und Kommas müssen immer Punkte sein. Hat man nun aber z.B. einen String "23.5" und will daraus die Zahl 23.5 machen, musste man früher in QBasic dieses machen:


Zahl = VAL(Textzahl$)


VAL gibt es in BB nicht mehr, man braucht es aber auch nicht sondern kann einfach folgendes machen:


Zahl = Textzahl$


Gab es früher eine Fehlermeldung, nimmt BB es ohne zu murren an. Auch wenn man eine Zahl hat und einen String draus machen will, kann man entweder das


Textzahl$ = Str$(zahl)


oder das


Textzahl$ = zahl


schreiben. Es kommt das gleiche raus. Sehr praktisch.
Das kann man dann auch noch mit Integer- und Floatvariablen machen. Also wenn man einen Floatvariable in eine Integer umwandeln will, kann man entweder


Integerzahl = Int(Floatzahl)


oder


Integerzahl = Floatzahl


schreiben. Auch sehr praktisch...

Mit Variablen kann man natürlich auch auf die unterschiedlichste Art rechnen, dafür hat BB viele verschiedene Befehle. Die vier wichtigsten sind eigentlich keine Befehle sondern Operatoren. Aber das ist egal, hauptsache sie rechnen für einen:


+   für Addition
-   für Substraktion
*   für Multiplikation
/   für Division



Dazu kommt noch ^ fürs potenzieren. Der Rest steht in der BB-Command Reference unter Math.

Man kann aber nicht nur Zahlen addieren, sondern auch Strings. Jetzt wird zwar nicht aus "eins" und "drei" "vier", aber wenn man folgendes macht:

text1$ = "www.rob"
text2$ = "site.de"
text3$ = text1$ + text2$

Print text3$



steht in text3$ www.robsite.de. Wohé!

Um bestimmte Variablen auch im gesamten Programm nutzen zu können, muss man sie als Global deklarieren:


Global x = 1


Dazu aber später mehr, ist jetzt nicht so wichtig...

Jetzt zu den Feldern (Arrays). Ein Array ist sowas wie eine Ansammlung von Variablen. Sozusagen eine Übervariable, die viele kleine in sich vereint. Ein Array muss man vorher dimensionieren. Will man nun eins mit 10 Elementen haben, schreibt man:


Dim feld(10)


Nun hat das Array feld 10 Einheiten, auf die man gesondert zugreifen kann. Ein Beispiel:


Dim feld(10)       ; Das Feld dimensionieren

feld(2) = 23
feld(3) = 5        ; 3 Werte 3 Einheiten des Feldes zuweisen.
feld(5) = 1949

Print feld(1)
Print feld(2)      ; Alle 3 Werte und eine leere Einheit (feld(1)) printen.
Print feld(3)
Print feld(5)



feld(1) hat keinen Wert (0), denn es wurde auch keiner zugewiesen...
Wenn man jetzt feld(11) ansprechen will, würde es eine Fehlermeldung geben desn es existiert ja nicht. Blitz Basic fängt diese Fehler ab und gibt eine entsprechende Meldung aus, wäre dem nicht so würde es eine Windows Schutzverletzung geben, soweit ich weiß...

Es gibt auch mehrdimensionale Arrays. So hat z.B.:


Dim feld(100,100)


10000 Einheiten, denn 100 mal 100 ist 10000... Diese kann man auch wieder ganz normal ansprechen:


Dim feld(100,100)

feld(13,13) = 23
feld(46,5) = 529
feld(44,14) = 1949

Print feld(13,13)
Print feld(46,5)
Print feld(44,14)



Das ganze ist gut wenn man viele Objekte mit demselben Code steuern will. Also z.B. Sternenfelder, einen Haufen Gegner, Regen u.s.w.






Zusammenfassung


; Die Verschiedenen Variablentypen sind:
[nichts] oder % für Integerzahlen (ohne Komma).
# für Float- (Komma) Zahlen auf 6 Stellen genau.
$ für Strings, also Text.


; Variablentypen wandelt man um, indem man sie einfach eine anderen Variablen zuweist:
Zahl = Textzahl$
Integerzahl = Floatzahl#
... u.s.w.

; Mit Variablen kann man ganz normal rechnen:
+ für Addition
- für Substraktion
* für Multiplikation
/ für Division
^ zum potenzieren


; Man kann auch Strings addieren (aber nicht subtrahieren oder anderes):
text1$ = "Hello "
text2$ = "World"
text3$ = text1$ + text2$
text3$ ist dann "Hello World"


; Um Variablen im gesamten Programm verwenden zu können (also auch in Functions, siehe Teil 5), muss man sie als -Global- deklarieren:
Global variable


; Ein Variablenfeld muss man erst dimensionieren, also angeben wieviele Einheiten es haben soll. Man kann Felder auch mit mehreren Dimensionen erstellen:
Dim feld1(10)
Dim feld2(10,10) ; 100 verschiedene Einheiten.
Dim feld3(10,10,10) ; 1000 verschiedene Einheiten.



Es gibt auch noch Types, die aber weit komplizierter sind als Felder. Am Anfang wird man sie auch nicht unbedingt brauchen...