1.16 Rechnen in Basic
 
Gerechnet wird also mit Zahlen. Dafür stehen folgende Rechenoperatoren zur Verfügung:
+, –, * und /. Also beispielsweise:
3 + 2
3 – 2
3 * 2
3 / 2
Es gibt noch eine fünfte Grundrechenart: die Potenz. 32
ergibt 3 * 3 = 9. Sie wird geschrieben:
3 ^ 2
Oder umgekehrt:
9 ^ 0.5
ergibt 3. Das bedeutet, die Wurzel aus 9 ist 3.
Das »Dach« (oder Caret, Accent circonflexe) sitzt auf der Tastatur links außen neben der Taste (1). Drückt man diese Taste, dann wartet sie auf eine zweite. Zum Beispiel auf einen Vokal. Da wir aber keinen Buchstaben benötigen, wird danach die Leertaste gedrückt.
Achtung: Vergessen Sie nicht: Dezimalstellen werden im Quellcode mit einem Punkt (».«) geschrieben, nicht mit Komma (»,«). Und: Mit Prozenten kann nicht gerechnet werden:
decBuchMWSt = decBuchPreis * 7 %
führt zu einer Fehlermeldung. Richtig wäre:
decBuchMWSt = decBuchPreis * 0.07
Soll eine Zahl vergrößert werden, dann so:
intZahl = intZahl + 2
Für die übrigen Grundrechenarten gilt:
intZahl = intZahl - 2
intZahl = intZahl * 2
intZahl = intZahl / 2
intZahl = intZahl ^ 2
oder in einem Schritt:
intZahl += 2
intZahl -= 2
intZahl *= 2
intZahl /= 2
intZahl ^= 2
Erstaunlicherweise wird die Division als Fehler angezeigt. Basic vermutet, dass beim Teilen eine Kommazahl das Ergebnis sein wird und zeigt deshalb den Quotienten als nicht korrekt an. Das bedeutet, dass wir die Variable anders deklarieren müssen, damit die Berechnung korrekt durchgeführt wird:
Dim dblZahl As Double
dblZahl = 8
oder in einem Schritt:
Dim dblZahl As Double = 8
Soll die Zahl vergrößert werden, dann so:
dblZahl = dblZahl + 2
dblZahl = dblZahl - 2
dblZahl = intZahl * 2
dblZahl = dblZahl / 2
dblZahl = dblZahl ^ 2
oder wieder in einem Schritt:
dblZahl += 2
dblZahl -= 2
dblZahl *= 2
dblZahl /= 2
dblZahl ^= 2
Ebenso wie Zahlen durch Rechenoperationen miteinander verknüpft werden, können auch Textblöcke verknüpft werden (es wurde ja bereits erwähnt). Zwei (oder mehrere) Zeichenketten können mit dem Zeichen »+« oder dem Zeichen »&« verbunden werden. Dies ist bei der Ausgabe längerer Texte nötig, da innerhalb der Textzeile nicht mit dem Unterstrich »_« umgebrochen werden darf. Beispielsweise:
Sub Heine1()
Dim strZeile1, strZeile2 As String
strZeile1 = "Das Fräulein stand am Meere"
strZeile2 = "Und seufzte lang und bang,"
MessageBox.Show(strZeile1 & strZeile2)
End Sub
Es erscheint geschickter, zwischen den beiden Additionsmöglichkeiten zu differenzieren, also für Zahlenadditionen »+« zu verwenden, für Stringverkettungen dagegen »&«. Die Ausgabe im Meldungsfenster ist noch unschön, da der Text ohne Zeilenwechsel »addiert« wird. Eine Zeilenschaltung kann mit dem ANSI-Code des Absatzzeichens (des Et-Zeichens oder Alineazeichens ¶) eingefügt werden. Es hat den Code 13 und wird mit Chr(13) eingefügt. Ebenso könnte der Zeilenwechsel verwendet werden. Er hat den ANSI-Code 10 oder entspricht vbCrLf. Also:
Sub Heine2()
Dim strZeile1, strZeile2 As String
strZeile1 = "Das Fräulein stand am Meere"
strZeile2 = "Und seufzte lang und bang,"
MessageBox.Show(strZeile1 & chr(13) & strZeile2)
End Sub
Die letzte Zeile der Stringverkettung wird sehr lang. Um sie abzukürzen, stehen mehrere Möglichkeiten zur Verfügung. Ein Zeilenumbruch innerhalb der Programmierzeile wird mit einem »_« eingeleitet und aus Übersichtsgründen in der zweiten Zeile eingerückt (wie im obigen Beispiel). Man kann die Textteile auch nacheinander addieren, also:
Sub Heine3()
Dim strZeile As String
strZeile = "Es rührte sie so sehre"
strZeile &= vbCr & "Der Sonnenuntergang"
MessageBox.Show(strZeile)
End Sub
Neben dem ¶-Zeichen werden manchmal das Anführungszeichen ("), der Apostroph (') und der Tabulator benötigt. Hier die Liste:
Tabelle 1.9
Erzeugbare Strings
| Zeichen
|
Code
|
Code
|
| (ÿ)
|
Chr(9)
|
vbTab
|
| (Enter)
|
Chr(13)
|
vbCr
|
| Zeilenwechsel
|
Chr(10)
|
vbCrLf und vbLf
|
| "
|
Chr(34)
|
""
|
| '
|
Chr(39)
|
'
|
Der Text »«Mein Fräulein!»« wird in einer Meldungsbox ausgegeben mit:
Sub Heine4()
Dim strZeile As String
strZeile = """Mein Fräulein! sein Sie munter,"
strZeile &= vbCr & "Das ist ein altes Stück;"
strZeile &= vbCr & "Hier vorne geht sie unter"
strZeile &= vbCr & _
"Und kehrt von hinten zurück." & Chr(34)
MessageBox.Show(strZeile)
End Sub
Abbildung 1.28
Das Meldungsfenster
Es funktioniert auch, wenn statt eines Anführungszeichens zwei im Text stehen. Sie werden von Basic als ein darzustellendes Anführungszeichen interpretiert.
Direkt in den Text eingegebene Anführungszeichen (") führen zu einer Fehlermeldung, da VB.NET davon ausgeht, dass die Zeichenkette nun zu Ende ist. Deshalb achte ich beim Korrekturlesen von Text auch auf fehlende Leerzeichen. Ausgegebener Text muss immer innerhalb der Anführungszeichen (" ") stehen.
|