VB Lektion 2: Variablen und Typen
From ILWiki
Inhaltsverzeichnis |
Variablen und Typen
Im Programm "Taschenrechner" wird mit dem Wert Textbox1.Text gerechnet. Für das kleine Programm ist das in Ordnung, da der Wert sofort benutzt wird. Manchmal muss sich das Programm den Wert jedoch "merken", um ihn später wieder benutzen zu können. Dazu gibt es Variablen. Jede Variable muss am Anfang eines Programms oder einer Prozedur deklariert werden. Das heißt, dass Programm muss wissen, wie die Variable heißt und von welchem Typ ihr Inhalt ist. Variablen deklariert man so:
dim Variablenname as Variablentyp
Beispiele:
dim x as Integer
dim Name as String
Die wichtigsten Typen sind folgende:
| Typ | Beispiel | Beschreibung |
| String | strName | Text mit einem oder mehreren Zeichen |
| Byte | bytAlter | ganze Zahl zwischen 0 und 255 |
| Short | srtKontostand_in_YTL | ganze Zahl zwischen –32.768 und 32.767 |
| Integer | intArtikelnummer | ganze Zahl zwischen –2.147.483.648 und 2.147.483.647 |
| Long | lngKontonummer | ganze Zahl zwischen –9.223.372.036.854.775.808 und 9.223.372.036.854.775.807 |
| Single | sglMasse | Gleitkommazahl mit einfacher Genauigkeit von -3,4028235E+38 bis 3,4028235E+38 |
| Double | dblTeilchenzahl | Gleitkommazahl mit doppelter Genauigkeit von -4,94065645841246544E-324 bis 4,94065645841246544E-324 |
| Decimal | decExakterWert | Zahl mit 28 gültigen Ziffern zwischen 0 und +/- 79228162514264337593543950335, an einer beliebigen Stelle kann ein Komma eingebaut sein, z.B 79228,162514264337593543950335 |
| Boolean | fHausaufgaben_gemacht | kann entweder "true" (="wahr") oder "false" (="falsch") sein |
| Date | datNationalfeiertag | Datum und Uhrzeit |
Viele Programmierer schreiben vor die Variablen eine Abkürzung, an der man sofort ihren Typ erkennt.
Mehrere Variablen können gleichzeitig deklariert werden:
dim datKurbanBayram, datSekerBayram as Date
oder
dim bytMatheNote as Byte, sglNotenschnitt as Single, fTesekür as Boolean
Warum soll man nicht alle Zahlen einfach vom Typ Decimal oder Double nehmen? Weil dies unnötig Speicherplatz braucht. Decimal braucht z.B. 16-mal so viel Platz wie Byte. Wenn man also nur Noten darstellen möchte, reicht Byte vollkommen aus.
Den Datentyp sollte man immer so klein wie möglich und so groß wie nötig wählen.
Variablenumwandlung
TextBox.Text ist vom Typ String, um mit dem Wert zu rechnen, haben wir es mit CInt() in Integer umgewandelt. Um auch mit Kommazahlen rechnen zu können, müssen wir einen anderen Datentyp nehmen, z.B. Double oder Decimal. Dazu brauchen wir andere Umwandlungsfunktionen:
| Funktion | Umwandlung nach |
| CStr() | String |
| CByte() | Byte |
| CShort() | Short |
| CInt() | Integer |
| CLng() | Long |
| CSng() | Single |
| CDbl() | Double |
| CDec() | Decimal |
| CBool() | Boolean |
| CDate() | Date |
Taschenrechner mit nur einem Eingabefeld
Die meisten Taschenrechner haben nur ein Eingabefeld, dein Taschenrechner soll genauso aussehen. Außerdem soll es eine Zeile geben, in der der Benutzer seine alten Eingaben lesen kann. Damit dein alter Taschenrechner nicht verloren geht, erstelle eine neue Windowsanwendung und gib ihr einen Namen, z.B. "BetülHakanTaschenrechner2".
Dein Formular sollte so aussehen:
Um bei größeren Programmen den Überblick zu behalten, gibt man den einzelnen Steuerelementen treffendere Namen als Label1, Label2, usw. Am besten fängst du direkt damit an und bennenst
- das Label mit dem Text "leer": lblEingabe
- den 1. Button: btnClear
- den 2. Button: btnPlus
- den 3. Button: btnErgebnis
- die Textbox: txtEingabe
- das Formular: frmTaschenrechner (die Eigenschaften des Formulars siehst du, wenn du an irgendeiner Stelle ins Formular klickst)
Wie bei den Variablen weiß man mit den Vorsilben sofort, welches Steuerelement gemeint ist. Das Formular benennen wir um, da wir später mit mehreren Formularen arbeiten werden.
Variablendeklaration
Das Programm soll sich zwei Dinge merken können:
- den Wert der Rechnung als dblWert
- den Text im lblEingabe als strEingabe
Um die Variablen zu deklarieren, öffnest du mit Ansicht-Code das Codefenster und fügst folgenden Code ein:
Wenn du die Variablen so ganz am Anfang deklarierst, sind sie allen weiteren Prozeduren bekannt. Wenn du sie in einer Prozedur deklarieren würdest, würden sie nur in der Prozedur gelten.
Eingaben löschen
Wenn man auf btnClear klickt, sollen alle Eingaben zurück gesetzt werden. Füge also in der Prozedur btnClear_Click folgenden Code ein:
dblWert = 0
strEingabe = Nothing
txtEingabe.Text = Nothing
lblEingabe.Text = strEingabe
Nothing bedeutet, dass Nichts in dem Eingabefeld steht. Das Gleiche soll passieren, wenn man das Programm startet. Dazu gibt es das Ereignis Load. Klicke irgendwo auf das Formular frmTaschenrechner2 und wähle im Eigenschaftenfenster mit dem Blitz die Ereignisse aus. Beim Ereignis Load kannst du die Prozedur btnClear_Click auswählen.
Fertig! Beim Programmstart wird automatisch die Prozedur btnClear_Click aufgerufen. Dadurch, dass du sie zweimal verwendest, sparst du dir Programmierarbeit und dein Programm wird kleiner.
Addition
Wenn man auf btnPlus klickt, sollen mehrere Sachen passieren:
- der Inhalt von lblEingabe soll um den Inhalt von txtEingabe erweitert werden
- der Inhalt von txtEingabe soll zu einem Wert im Speicher addiert werden
Dabei interessiert es überhaupt nicht, welchen Wert die Variablen strEingabe und dblWert vorher haben. Für die Erhöhung von dblWert genügt:
dblWert = dblWert + CDbl(txtEingabe.Text)
Für die Änderung von strEingabe genügt:
strEingabe = strEingabe & "+" & txtEingabe.Text
Zum "Addieren" von Texten benutzt man besser das &-Zeichen.
Nachdem auf btnPlus geklickt wurde, soll die Anzeige aktualisiert werden und der Inhalt von txtEingabe gelöscht werden. Dazu schreiben wir:
lblEingabe.Text = strEingabe
txtEingabe.Text = Nothing
All das schreiben wir in die Prozedur btnPlus_Click:
Ergebnis anzeigen
Fehlt nur noch die Anzeige des Ergebnisses. Die nötige Anweisung für die Prozedur btnErgebnis_Click kannst du selbst schreiben. Denk daran, dass die letzte Eingabe noch mitgezählt werden muss.
Verbesserungen
Einiges stört noch an dem Programm:
- Am Anfang der Rechnung steht ein Pluszeichen
- Wenn man negative Zahlen eingibt, steht in lblEingabe etwas wie +-5,2
- Wenn man Texte eingibt, stürzt das Programm ab
- Wenn man . statt , benutzt, stürzt das Programm ab
- Man muss immer "von Hand" in txtEingabe klicken
- ...




