VB Lektion 2: Variablen und Typen

From ILWiki

Jump to: navigation, search

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:

Image: ILVBLkt2Formular1.jpg

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:

Image: ILVBLkt2Code1.jpg

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.

Image: ILVBLkt2FormLoad.jpg

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:

Image: ILVBLkt2Code2.jpg

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
  • ...
Views
Persönliche Werkzeuge