Visual Basic-Variablen/ Operatoren und das .NET
Transcrição
Visual Basic-Variablen/ Operatoren und das .NET
550.book Page 149 Wednesday, December 14, 2005 11:02 AM Kapitel 5 Visual Basic-Variablen/ Operatoren und das .NET Framework In diesem Kapitel: Die Anatomie einer Visual Basic-Programmanweisung . . . . . . . . . . . . . . 151 Informationen in Variablen speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Variablen in einem Programm verwenden . . . . . . . . . . . . . . . . . . . . . . . . . 154 Variablen zum Speichern von Eingaben verwenden . . . . . . . . . . . . . . . . . 159 Variablen für Programmausgaben verwenden . . . . . . . . . . . . . . . . . . . . . 162 Bestimmte Datentypen verwenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Die Visual Basic-Operatoren verwenden. . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Mathematische Funktionen des .NET Frameworks verwenden. . . . . . . . 180 Einen Schritt weiter: Operatorrangfolge. . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Schnellüberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 In diesem Kapitel lernen Sie, 쐽 wie Sie Variablen verwenden, um Daten in Programmen zu speichern. 쐽 wie mit der Funktion InputBox Benutzereingaben abgefragt werden. 쐽 wie mit der Funktion MsgBox Meldungen angezeigt werden. 쐽 wie Sie mit verschiedenen Datentypen arbeiten. 쐽 wie Sie Variablen und Operatoren zur Veränderung von Daten einsetzen. 쐽 wie Sie Methoden des .NET Frameworks verwenden. 쐽 wie Sie mit mathematischen Operatoren und Funktion in Formeln arbeiten. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 150 Wednesday, December 14, 2005 11:02 AM 150 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework In Teil A haben Sie gelernt, wie eine Benutzeroberfläche für ein Microsoft Visual Basic 2005-Programm aufgebaut und wie ein Programm in der Visual Studio-Entwicklungsumgebung erstellt und ausgeführt wird. In den nächsten neun Kapiteln von Teil B lernen Sie, wie Sie den Visual Basic-Programmcode erstellen, d.h. die Anweisungen und Schlüsselwörter, die den funktionalen Kern eines Visual Basic-Programms bilden. Sie erfahren, wie Sie Daten innerhalb von Programmen verwalten und wie Sie die Codeausführung steuern. Außerdem lernen Sie den Einsatz von Kontrollstrukturen, Schleifen, Zeitgebern, Arrays, Auflistungen und Textdateien kennen. Sie erfahren, wie Sie Programme debuggen und auftretende Runtime-Fehler bearbeiten. Wenn Sie Teil B abgeschlossen haben, sind Sie für anspruchsvollere Themen gerüstet. In diesem Kapitel werden Sie Variablen einsetzen, um Daten temporär in einem Programm zu speichern, und mathematische Operatoren verwenden, um mathematische Berechnungen vorzunehmen, etwa Addition und Multiplikation. Außerdem wird beschrieben, wie Sie mit mathematischen Funktionen Berechnungen mit Zahlen durchführen und wie Sie die Funktionen InputBox und MsgBox verwenden, um mithilfe von Dialogfeldern Informationen zu sammeln (Benutzereingaben) und anzuzeigen (Bildschirmausgaben). Am Ende des Kapitels lernen Sie die leistungsstarken Klassen und Methoden von Microsoft .NET Framework 2.0 für mathematische Berechnungen und für sonstige nützliche Arbeitsgänge kennen. Upgrade-Hinweise: Visual Basic 6-Code auf Visual Studio 2005 aktualisieren Wenn Sie bereits über Erfahrungen mit Visual Basic 6 verfügen, werden Ihnen die folgenden neuen Funktionen in Visual Basic 2005 auffallen: 쐽 Zur Verbesserung des allgemeinen Programmierstils und zur Erstellung von »sauberem« Programmcode müssen jetzt alle Visual Basic 2005-Variablen deklariert werden, bevor sie verwendet werden. Die implizite Deklaration von Variablen (also die Verwendung von Variablen ohne vorherige Deklaration) ist nur zulässig, wenn die Anweisung Option Explicit Off verwendet wird. Diese Vorgehensweise wird aber nicht empfohlen. 쐽 In Visual Basic 2005 wird der Datentyp Variant nicht mehr unterstützt. Jetzt sollten alle Variablen mit Dim und dem Schlüsselwort As (zur Identifikation des darin enthaltenen Datentyps) deklariert werden. 쐽 Es stehen jetzt mehrere neue grundlegende Datentypen zur Verfügung. Einige der übernommenen älteren Datentypen unterstützen nun andere Wertebereiche. Beispielsweise sind jetzt der 16-Bit-Datentyp Short, der 32Bit-Datentyp Integer und der 64-Bit-Datentyp Long verfügbar. Der Visual Basic 6-Datentyp Currency wurde durch den Datentyp Decimal ersetzt. 쐽 Ab Visual Basic Studio .NET 2003 wird eine neue Anweisung namens Option Strict unterstützt. Wenn Option Strict aktiviert ist, müssen Variablen normalerweise denselben Typ haben, um addiert, verglichen oder kombiniert werden zu können. In Visual Studio 2005 ist diese Compilereinstellung standardmäßig deaktiviert. Dies bedeutet, dass das Addieren, Vergleichen und Kombinieren von Variablen unter bestimmten Umständen möglich ist, ohne dass es zu einem Compilerfehler kommt. (Die Einstel- Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 151 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 151 lung können Sie überprüfen, indem Sie im Menü Extras den Befehl Optionen wählen, auf Projekte und Projektmappen und dann auf VB-Standard klicken.) Diese Einstellung dient dem Schutz vor unerwünschten Fehlermeldungen, falls Datentypen nicht übereinstimmen. (Wenn Sie Option Strict aktivieren, müssen Sie sich mit den Datenumwandlungsfunktionen wie CInt, CLng und CType vertraut machen, um unterschiedliche Datentypen kompatibel zu machen.) In diesem Buch wird davon ausgegangen, dass Option Strict auf Off gesetzt ist. Wenn dies bei Ihrem Programm nicht der Fall ist, wird der Programmcode der Übungsdateien in einigen Fällen nicht korrekt ausgeführt. 쐽 Es gibt jetzt für einige arithmetische Operatoren wie Addition (+), Subtraktion (–) und Multiplikation (*) so genannte Kurzschreibweisen für mathematische Operationen. Mit diesen Kurzschreibweisen kann beispielsweise die Zuweisung X = X + 2 mit der Syntax X += 2 erstellt werden. 쐽 Visual Basic 2005 verfügt nicht mehr über integrierte Schlüsselwörter (z.B. Abs oder Cos) für mathematische Operationen. Stattdessen müssen für mathematische Operationen die Methoden aus der Klassenbibliothek System.Math des .NET Frameworks verwendet werden. Die Funktion dieser Methoden ähnelt stark den bekannten Visual Basic 6-Funktionen, obwohl einige Namen geändert wurden (z.B. heißt Sqr jetzt Sqrt). 쐽 Visual Studio bietet jetzt ein MessageBox-Objekt, das als Alternative zur Funktion MsgBox zur Erzeugung von Meldungsfeldern verwendet werden kann. Zur Anzeige eines Meldungsfeldes wird die Methode MessageBox.Show verwendet. Die Anatomie einer Visual BasicProgrammanweisung Wie Sie in Kapitel 2 erfahren haben, wird eine Codezeile in einem Visual Basic-Programm als »Programmanweisung« bezeichnet. Eine Programmanweisung ist eine beliebige Kombination von Visual Basic-Schlüsselwörtern, Eigenschaften, Funktionen, Operatoren und Symbolen, die zusammen eine gültige Anweisung bilden, die vom Visual Basic-Compiler erkannt wird. Eine Programmanweisung kann aus einem einzigen Schlüsselwort bestehen, beispielsweise: End Damit wird die Ausführung eines Visual Basic-Programms beendet. Oder sie kann aus einer Kombination von Elementen bestehen, z.B. die folgende Anweisung, in der die TimeString-Eigenschaft verwendet wird, um der Text-Eigenschaft des Objekts Label1 die aktuelle Systemzeit zuzuweisen: Label1.Text = TimeString Die Regeln zum Aufbau einer solchen Programmanweisung werden auch als »Syntax« bezeichnet. In Visual Basic gelten viele Syntaxregeln, die auch schon in früheren Versio- Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 152 Wednesday, December 14, 2005 11:02 AM 152 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework nen der Programmiersprache Basic sowie in anderen Sprachcompilern verwendet wurden. Entscheidend für das Schreiben effizienter Programmanweisungen ist es, die Syntax der nützlichsten Elemente einer Programmiersprache und die korrekte Verwendung dieser Elemente zu kennen. Glücklicherweise erledigt Visual Basic einen großen Teil der Kleinarbeit für Sie, so dass Sie relativ wenig Zeit zum Schreiben von Programmcode aufwenden müssen. Einmal erstellter Programmcode kann problemlos in anderen Visual Basic-Programmen wiederverwendet werden. In den folgenden Kapiteln lernen Sie einige der wichtigsten Visual Basic-Schlüsselwörter und Programmanweisungen sowie viele Objekte, Eigenschaften und Methoden der Visual Studio-Steuerelemente und des .NET Frameworks kennen. Wie Sie sehen werden, ergänzen diese Schlüsselwörter und Objekte Ihre bereits erworbenen Programmierkenntnisse und werden Ihnen helfen, leistungsfähige Programme zu erstellen. Variablen und Datentypen, das Thema dieses Kapitels, sind die Kernelemente nahezu jedes Programms. Informationen in Variablen speichern Eine Variable ist ein temporärer Speicherort in einem Programm. Sie können im Programmcode eine oder mehrere Variablen verwenden. Variablen können Wörter, Zahlen, Datumsangaben oder Eigenschaftseinstellungen enthalten. Variablen geben Ihnen die Möglichkeit, einem Datenelement, das später verarbeitet werden soll, einen einfachen, leicht merkbaren Namen zuzuordnen. Variablen können Informationen enthalten, die der Benutzer während der Programmausführung eingibt, Ergebnisse aus programminternen Berechnungen und Daten, die im Formular angezeigt werden sollen. Variablen sind nützliche Hilfsmittel, die sich verwenden lassen, um (fast) beliebige Typen von Informationen zwischenzuspeichern und später anderen Programmfunktionen bereitzustellen. Die Verwendung von Variablen in einem Visual Basic-Programm erfordert einige Planung. Bevor eine Variable verwendet werden kann, muss im Arbeitsspeicher des Computers Speicherplatz für die Variable reserviert werden. Man kann den Einsatz von Variablen in einem Visual Basic-Programm mit Tischreservierungen in einem stark frequentierten Restaurant vergleichen. Im nächsten Abschnitt wird diese »Reservierung« bzw. Deklaration von Variablen beschrieben. Speicherplatz für Variablen reservieren: Die Dim-Anweisung In Visual Basic .NET 2003 und Visual Basic 2005 müssen Variablen explizit deklariert werden, bevor sie verwendet werden können. Dies stellt einen wichtigen Unterschied gegenüber früheren Versionen von Visual Basic dar, in denen unter bestimmten Umständen Variablen implizit deklariert – d.h. einfach ohne Dim-Anweisung – verwendet werden konnten. Diese Vorgehensweise verlieh zwar Flexibilität, war aber auch extrem gefährlich. Falsch geschriebene oder verwechselte Variablen führten häufig zu tückischen Fehlern im Programmcode, die erst später erkannt werden konnten. In Visual Basic 2005 deklarieren Sie eine Variable, indem Sie den Variablennamen nach der Dim-Anweisung angeben. (Dim steht für Dimension.) Dadurch wird während der Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 153 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 153 Programmausführung im Speicher der Speicherplatz für die Variable reserviert. Außerdem erfährt Visual Basic, welchen Datentyp es von der Variablen zu erwarten hat. Obwohl diese Deklaration an einer beliebigen Stelle im Programm stehen kann (die Variablen müssen lediglich deklariert worden sein, bevor sie verwendet werden), deklarieren die meisten Programmierer ihre Variablen am Anfang von Ereignisprozeduren bzw. Codemodulen. Folgende Anweisung reserviert beispielsweise Speicherplatz für eine Variable namens LastName, die einen Text- bzw. Zeichenfolgenwert (String) speichert: Dim LastName As String Beachten Sie, dass neben der Angabe des Namens der Variablen das Schlüsselwort As verwendet wurde, um der Variablen einen bestimmten Typ zu geben. In diesem Fall wird der Typ durch das Schlüsselwort String identifiziert. Es handelt sich also um eine Zeichenfolgenvariable. (Im Verlauf dieses Kapitels werden Sie weitere Datentypen kennen lernen.) Eine Zeichenfolgenvariable enthält Textdaten wie Wörter, Buchstaben, Symbole und sogar Zahlen. Zeichenfolgenvariablen sind recht praktisch, da darin unter anderem Namen, Ortsangaben, Textnotizen, der Inhalt von Dateien und andere Daten gespeichert werden können. Warum müssen Variablen deklariert werden? Visual Basic verlangt die Definition des Namens und Typs von Variablen vor ihrer Verwendung, damit der Compiler den Speicherplatz reservieren kann, den das Programm benötigt, um die Informationen aus den Variablen verarbeiten zu können. Das Thema Speicherverwaltung hat für Sie vielleicht noch keine hohe Priorität (heutige PCs verfügen ja über jede Menge RAM und Festplattenspeicherplatz). Manche Programme sind aber recht »gefräßig« und »vertilgen« auch den größten Arbeitsspeicher. Professionelle Programmierer sollten die Speicherverwaltung daher ernst nehmen. Wie Sie gleich sehen werden, haben verschiedene Typen von Variablen verschiedene Arbeitsspeicheranforderungen und Größenbeschränkungen. Tipp In einigen früheren Versionen von Visual Basic waren keine bestimmten Variablentypen (wie String oder Integer) erforderlich. Die entsprechenden Informationen wurden in einem allgemeinen (und daher recht speicherintensiven) Datentyp namens Variant abgelegt. Dieser Datentyp konnte Daten beliebigen Typs und nahezu beliebiger Größe aufnehmen. In Visual Basic 2005 wird der Datentyp Variant nicht mehr unterstützt. Obwohl dieser Datentyp gewisse Vorteile für Programmiereranfänger bot, war er nicht besonders effizient und verlangsamte die damit erstellten Programme. Außerdem ließ er zu, dass der Variablentyp ohne weiteres geändert werden konnte, was manchmal zu unvorhergesehenen Ergebnissen führte. Nachdem Sie eine Variable deklariert haben, können Sie ihr im Programmcode Daten zuweisen. Mit folgender Programmanweisung wird der Variablen LastName der Wert »Jäger« zugewiesen: LastName = "Jäger" Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 154 Wednesday, December 14, 2005 11:02 AM 154 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Beachten Sie, dass der Variablen LastName ein Textwert zugewiesen wurde, da sie den Typ String hat. Alternativ hätte der Variablen auch ein Wert mit Leerzeichen, Symbolen oder Zahlen zugewiesen werden können, wie beispielsweise: LastName = "Juli 2005" Die Variable würde dann immer noch als Zeichenfolgenwert gelten. Der Zahlenteil (2005) könnte aber nur in einer mathematischen Formel verwendet werden, nachdem er mit einer der Konvertierungsfunktionen (die später in diesem Buch beschrieben werden) in eine Ganzzahl oder einen Gleitkommawert umgewandelt worden ist. Nachdem der Variablen LastName ein Wert zugewiesen wurde, kann diese Variable statt des Namens Jäger im Programmcode verwendet werden. Beispielsweise wird mit folgender Zuweisung Label1.Text = LastName das Wort Jäger im ersten Bezeichnungsfeld eines Formulars angezeigt. Tipp Wenn Sie in Visual Basic 2005 eine Variable auf die »alte Art und Weise« deklarieren möchten, also nicht explizit mit der Dim-Anweisung, können Sie die Anweisung Option Explicit Off als erste Anweisung in den Programmcode für das Formular bzw. Modul einfügen (vor den Ereignisprozeduren). Damit wird aber das Grundprinzip von Visual Basic, dass Variablen vor ihrer Verwendung deklariert werden müssen, außer Kraft gesetzt. Diese Vorgehensweise wird nicht als Langzeitlösung empfohlen, kann aber besonders bei der Konvertierung älterer Visual Basic-Programme in Visual Studio 2005 nützlich sein Variablen in einem Programm verwenden Variablen können während der gesamten Programmausführung den gleichen Wert enthalten oder ihren Wert mehrmals wechseln. In der folgenden Übung wird gezeigt, wie die Variable LastName verschiedene Textwerte aufnehmen kann und wie diese Variable einer Objekteigenschaft zugewiesen wird. Den Wert einer Variablen ändern 1. Starten Sie Visual Studio. 2. Wählen Sie im Menü Datei den Befehl Projekt öffnen. Daraufhin wird das Dialogfeld Projekt öffnen angezeigt. 3. Öffnen Sie das Projekt Variablentest aus dem Ordner c:\vb05sfs\kap05\Variablentest. 4. Wenn das Formular des Projekts nicht sichtbar ist, klicken Sie im Projektmappen-Explorer auf Form1.vb und dann auf die Schaltfläche Ansicht-Designer. Das Formular der Anwendung Variablentest wird im Windows FormsDesigner angezeigt. Dieses Projekt stellt lediglich ein »Programmgerüst« bereit. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 155 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 155 Es enthält ein Formular mit Schaltflächen und Bezeichnungsfeldern, mit denen Ausgaben angezeigt werden können, es weist aber fast keinen Programmcode auf. In dieser Übung werden Sie den notwendigen Programmcode hinzufügen. Das Formular sollte jetzt etwa wie in Abbildung 5.1 aussehen. Abbildung 5.1 Das Formular der Anwendung Variablentest Das Formular enthält zwei Bezeichnungsfelder und zwei Schaltflächen. Sie werden die Variablen deklarieren, die zur Anzeige der Informationen in den Bezeichnungsfeldern verwendet werden. Tipp Die Bezeichnungsfeldobjekte sehen wie Kästchen aus, da ihre BorderStyle-Eigenschaft auf Fixed3D eingestellt wurde. 5. Doppelklicken Sie auf die Schaltfläche Anzeigen. Im Code-Editor wird die Ereignisprozedur Button1_Click angezeigt. 6. Geben Sie folgende Programmanweisungen zur Deklaration und Verwendung der Variablen LastName ein: Dim LastName As String LastName = "Luther" Label1.Text = LastName LastName = "Bodenstein von Karlstadt" Label2.Text = LastName Die Programmanweisungen sind in drei Gruppen unterteilt. Die erste Anweisung deklariert die Variable LastName unter Verwendung der Dim-Anweisung und des Typs String. Sobald Sie diese Zeile eingeben, wird LastName mit einer Wellenlinie unterstrichen, da die Variable zwar deklariert, aber noch nicht benutzt wurde. Dies stellt keinen Fehler dar. Visual Studio will Sie nur daran erinnern, dass eine deklarierte Variable noch nicht eingesetzt wurde. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 156 Wednesday, December 14, 2005 11:02 AM 156 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Tipp Wenn Sie das Programm fertig gestellt haben und der Variablenname immer noch unterstrichen ist, liegt vermutlich ein Schreibfehler im Code vor. In der zweiten und dritten Zeile wird der Variablen LastName der Name Luther zugewiesen und dieser Name im ersten Bezeichnungsfeld des Formulars angezeigt. Dies ist einer der häufigsten Einsatzbereiche von Variablen in einem Programm – die Übergabe von Informationen an eine Eigenschaft. In der vierten Zeile wird der Variablen LastName der Name Bodenstein von Karlstadt zugewiesen (mit anderen Worten, der Inhalt der Variablen wird geändert). Beachten Sie, dass die zweite Zeichenfolge länger als die erste Zeichenfolge ist und einige Leerzeichen enthält. Wenn Textzeichenfolgen Variablen zugewiesen oder anderweitig verwendet werden, muss der Text immer in Anführungszeichen gesetzt werden. (Bei Zahlen ist dies nicht notwendig.) Schließlich soll noch auf ein anderes wichtiges Merkmal der in dieser Ereignisprozedur deklarierten Variablen hingewiesen werden: Variablen behalten ihren Gültigkeitsbereich bzw. ihren Wert nur innerhalb der Ereignisprozedur, in der sie verwendet werden. Weiter hinten in diesem Kapitel werden Sie lernen, wie Variablen deklariert werden, so dass sie in allen Ereignisprozeduren eines Formulars benutzt werden können. 7. Klicken Sie auf die Registerkarte Form1.vb [Entwurf], um das Formular erneut anzuzeigen. 8. Doppelklicken Sie auf die Schaltfläche Beenden. Im Code-Editor wird die Ereignisprozedur Button2_Click angezeigt. 9. Geben Sie folgende Programmanweisung ein, um das Programm zu beenden: End Ihre Bildschirmanzeige sollte jetzt etwa wie in Abbildung 5.2 aussehen. 10. Klicken Sie auf die Schaltfläche Alle speichern, um Ihre Änderungen zu speichern. 11. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten, um das Programm auszuführen. Das Programm wird in der Entwicklungsumgebung ausgeführt. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 157 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 157 Abbildung 5.2 Der Code-Editor mit den Ereignisprozeduren für die beiden Schaltflächen 12. Klicken Sie auf die Schaltfläche Anzeigen. Das Programm deklariert die Variable, weist ihr zwei Werte zu und kopiert sie in die zwei Bezeichnungsfelder des Formulars. Das Programm erzeugt dann die in Abbildung 5.3 dargestellte Ausgabe. 13. Klicken Sie auf die Schaltfläche Beenden, um das Programm zu beenden. Das Programm wird beendet, und die Entwicklungsumgebung wird wieder angezeigt. Abbildung 5.3 Das Beispielprogramm Variablentest während der Ausführung Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 158 Wednesday, December 14, 2005 11:02 AM 158 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Namenskonventionen für Variablen Variablen sollten so benannt werden, dass ihre Namen kurz, prägnant und leicht zu behalten sind. Beachten Sie die folgenden Richtlinien bei der Benennung von Variablen: 쐽 Variablennamen müssen in Visual Basic mit einem Buchstaben oder mit einem Unterstrich beginnen. Variablennamen können Buchstaben, Zahlen und Unterstriche enthalten. 쐽 Obwohl Variablennamen fast beliebig lang sein können, sollten sie nie länger als 33 Zeichen sein, damit sie lesbar sind. (In Visual Basic 6 konnten Variablennamen maximal 255 Zeichen umfassen, diese Einschränkung gilt aber nicht mehr.) 쐽 Wenn möglich, sollte der Variablenname die Funktion der Variablen beschreiben. Gegebenenfalls können mehrere Wörter kombiniert werden. Beispielsweise ist der Variablenname Einkommensteuersatz viel klarer als nur Steuer oder Satz. 쐽 Verwenden Sie bei Bedarf Groß- und Kleinschreibung sowie Zahlen in Variablennamen. In der Regel wird der erste Buchstabe jedes in einem Variablennamen enthaltenen Wortes großgeschrieben, z.B. GeburtstagDesBenutzers. Manche Programmierer schreiben den ersten Buchstaben eines Variablennamens absichtlich klein, um Variablennamen von Funktionen und Modulnamen unterscheiden zu können (deren Anfangsbuchstabe meist großgeschrieben wird). Beispiele für diese Schreibweise sind geburtstagDesBenutzers, mitarbeiterName und zaehler. Groß- und Kleinschreibung wird übrigens ignoriert. Bei mitarbeiterName, MitarbeiterName und Mitarbeitername handelt es sich folglich um ein und dieselbe Variable. Der Einsatz von Groß- und Kleinschreibung hat daher auf die Programmausführung keinen Einfluss und dient ausschließlich der Lesbarkeit. 쐽 Schlüsselwörter, Objekte und Eigenschaften dürfen nicht als Variablennamen verwendet werden. 쐽 Es hat sich eingebürgert, Variablennamen mit einer zwei oder drei Buchstaben umfassenden Abkürzung einzuleiten, die den Datentyp der Variablen bezeichnet. Verwenden Sie beispielsweise den Namen strName, um anzuzeigen, dass die Variable Name Daten vom Typ String enthält. Sie brauchen sich im Moment nicht um diese Konvention zu kümmern, werden ihr aber in der Onlinehilfe zu Visual Studio und in Büchern zur Programmierung mit Visual Basic begegnen. (Die obige Konvention und das Abkürzungssystem wurden übrigens von Charles Simonyi konzipiert, einem in Ungarn geborenen ehemaligen Microsoft-Entwickler; sie werden gelegentlich auch als »Ungarische Namenskonvention« bezeichnet.) Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 159 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 159 Variablen zum Speichern von Eingaben verwenden Variablen werden häufig zum Speichern von Informationen verwendet, die der Benutzer während der Programmausführung in das Programm eingibt. Obwohl es meist möglich ist, ein Objekt zum Erfassen von Benutzereingaben zu verwenden (z.B. ein Dateilistenfeld oder ein Textfeld), ist es gelegentlich vorteilhafter, direkt mit dem Benutzer zu kommunizieren und die Benutzereingaben in einer Variablen statt einer Eigenschaft zu speichern. Hierzu können Sie beispielsweise die Funktion InputBox einsetzen, um ein Dialogfeld anzuzeigen und den vom Benutzer in das Dialogfeld eingegebenen Text in eine Variable zu übertragen. In der folgenden Übung wird darauf zurückgegriffen. Eingaben mit der Funktion InputBox abfragen 1. Wählen Sie im Menü Datei den Befehl Projekt öffnen. Daraufhin wird das Dialogfeld Projekt öffnen angezeigt. 2. Öffnen Sie das Projekt Eingabe aus dem Ordner c:\vb05sfs\kap05\Eingabe. Das Projekt Eingabe wird in der Entwicklungsumgebung geöffnet. Das Projekt Eingabe ist ein »Programmgerüst«, das ein Formular mit Schaltflächen und ein Bezeichnungsfeld zur Anzeige von Ausgaben, jedoch sehr wenig Programmcode enthält. 3. Wenn das Formular des Projekts nicht sichtbar ist, klicken Sie im Projektmappen-Explorer auf Form1.vb und dann auf die Schaltfläche Ansicht-Designer. Das Formular enthält ein Bezeichnungsfeld und zwei Schaltflächen. Sie werden die Funktion InputBox verwenden, um Eingaben vom Benutzer abzufragen und diese dann im Bezeichnungsfeld anzuzeigen. 4. Doppelklicken Sie auf die Schaltfläche Eingabe. Im Code-Editor wird die Ereignisprozedur Button1_Click angezeigt. 5. Geben Sie folgende Programmanweisungen zur Deklaration der beiden Variablen und zum Aufruf der Funktion InputBox ein: Dim Prompt, FullName As String Prompt = "Geben Sie Ihren Namen ein." FullName = InputBox(Prompt) Label1.Text = FullName Hier werden mit der Dim-Anweisung zwei Variablen deklariert: Prompt und FullName. Beide Variablen werden mit dem Typ String deklariert. (In einer Zeile können beliebig viele Variablen deklariert werden, solange sie alle denselben Typ haben.) Beachten Sie, dass in Visual Basic 6 mit derselben Syntax ein ganz anderes Ergebnis erzielt worden wäre: Mit der Dim-Anweisung würde die Variable Prompt mit dem Typ Variant (weil kein Typ angegeben wurde) und die zweite Variable mit dem Typ String erstellt. Diese logische Inkonsistenz wurde in Visual Basic 2002, 2003 und 2005 behoben. In der zweiten Zeile der Ereignisprozedur wird der Variablen Prompt Text bzw. eine Zeichenfolge zugewiesen. Dieser Text bzw. die Zeichenfolge wird als Argu- Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 160 Wednesday, December 14, 2005 11:02 AM 160 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework ment für die Funktion InputBox verwendet. (Ein Argument ist ein Wert bzw. ein Ausdruck, der einer Unterprozedur bzw. einer Funktion zugewiesen wird.) In der nächsten Zeile wird die Funktion InputBox aufgerufen und das Ergebnis des Aufrufs (die Zeichenfolge, die der Benutzer eingegeben hat) der Variablen FullName zugewiesen. InputBox ist eine spezielle Visual Basic-Funktion, mit der ein Dialogfeld am Bildschirm angezeigt wird, in dem der Benutzer Eingaben vornehmen kann. Zusätzlich zum Text für die Eingabeaufforderung (hier die Variable Prompt) können der Funktion InputBox auch andere Argumente übergeben werden. Weitere Informationen hierzu finden Sie in der Onlinehilfe zu Visual Studio. Nachdem die Funktion InputBox die Zeichenfolge an das Programm zurückgegeben hat, wird der eingegebene Name mit der vierten Anweisung der Prozedur in die Eigenschaft Text des Objekts Label1 kopiert, das ihn im Formular anzeigt. Tipp In früheren Versionen von BASIC wurde der Name der Funktion InputBox anders geschrieben: Er endete mit dem Zeichen $. Dies sollte Programmierer daran erinnern, dass diese Funktionen Daten vom Typ String ($) zurückgibt. Zeichenfolgenvariablen wurden früher gelegentlich auch durch das Symbol $ identifiziert. Heutzutage werden diese Typsymbole nicht mehr verwendet. String ($), Integer (%) und andere Typabkürzungen sind heute nicht mehr gebräuchlich. 6. Speichern Sie Ihre Änderungen. 7. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten, um das Programm auszuführen. Das Programm wird in der Entwicklungsumgebung ausgeführt. 8. Klicken Sie auf die Schaltfläche Eingabe. Visual Basic führt die Ereignisprozedur Button1_Click aus und zeigt das Dialogfeld Eingabe an (siehe Abbildung 5.4). Abbildung 5.4 Das Dialogfeld Eingabe fordert zur Eingabe des Namens auf 9. Geben Sie Ihren Namen ein und klicken Sie auf OK. Die Funktion InputBox übergibt den Namen dem Programm und speichert ihn in der Variablen FullName. Das Programm verwendet dann den Inhalt dieser Variablen, um den Namen im Formular anzuzeigen (siehe Abbildung 5.5). Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 161 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 161 Abbildung 5.5 Der eingegebene Name wird im Bezeichnungsfeld angezeigt Sie können die Funktion InputBox jederzeit in einem Programm einsetzen, um dem Benutzer die Eingabe von Informationen zu ermöglichen. Die Funktion kann zusammen mit anderen Eingabesteuerelementen verwendet werden, um den Datenfluss in ein und aus einem Programm zu steuern. In der nächsten Übung werden Sie lernen, wie Sie mit einer ähnlichen Funktion Text in einem Dialogfeld anzeigen können. 10. Klicken Sie auf die Schaltfläche Beenden, um das Programm zu verlassen. Das Programm wird beendet, und die Entwicklungsumgebung wird wieder angezeigt. Was ist eine Funktion? InputBox ist ein besonderes Visual Basic-Schlüsselwort, mit dem eine so genannte Funktion bezeichnet wird. Eine Funktion ist eine Anweisung, die eine bestimmte Aufgabe erledigt (z.B. Informationen vom Benutzer abfragt oder eine Gleichung berechnet) und das Ergebnis an das Programm zurückgibt. Der von einer Funktion gelieferte Wert kann sowohl einer Variablen zugewiesen (wie im Programm Eingabe) als auch einer Eigenschaft oder einer anderen Anweisung oder Funktion übergeben werden. Visual Basic-Funktionen verfügen oft über ein oder mehrere Argumente, die ihre Funktionalität definieren. Beispielsweise wurde in der letzten Übung in der Funktion InputBox mit der Variablen Prompt ein Text (hier »Geben Sie Ihren Namen ein.«) angegeben, der im Dialogfeld angezeigt werden soll. Wenn eine Funktion mehrere Argumente verwendet, werden diese Argumente durch Kommata voneinander getrennt. Die folgende Anweisung zeigt einen Funktionsaufruf, der über zwei Argumente verfügt: FullName = InputBox(Prompt, Title) Beachten Sie die kursive Darstellung der Argumentgruppe. Diese Schreibweise wird im gesamten Buch und auch in der Dokumentation zu Visual Studio verwendet. Sie besagt, dass diese Elemente als Platzhalter für Daten dienen, die von Ihnen angegeben werden. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 162 Wednesday, December 14, 2005 11:02 AM 162 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Variablen für Programmausgaben verwenden Zur Anzeige des Inhalts einer Variablen kann die Variable einer Eigenschaft (z.B. der Eigenschaft Text eines Bezeichnungsfeldes) zugewiesen oder als Argument an eine Dialogfeldfunktion übergeben werden. Eine nützliche Dialogfeldfunktion zur Anzeige von Ausgaben ist die Funktion MsgBox. Wenn die Funktion MsgBox aufgerufen wird, zeigt sie ein Dialogfeld bzw. ein Meldungsfeld an, in dem verschiedene Optionen angegeben werden können. Ähnlich wie der Funktion InputBox werden dieser Funktion ein oder mehrere Argumente übergeben, und die Ergebnisse des Funktionsaufrufs können einer Variablen zugewiesen werden. Aufrufe der Funktion MsgBox haben folgende Syntax: ButtonClicked = MsgBox(Prompt, Buttons, Title) Hierbei steht Prompt für den im Meldungsfeld angezeigten Text. Buttons gibt die Schaltflächen, Symbole etc. an, die im Meldungsfeld angezeigt werden sollen. Title ist der Text, der in der Titelleiste des Meldungsfeldes dargestellt wird. Das von der Funktion zurückgegebene Ergebnis wird der Variablen ButtonClicked zugewiesen, die angibt, auf welche Schaltfläche im Dialogfeld geklickt wurde. Wenn mit der Funktion MsgBox lediglich eine Meldung angezeigt werden soll, sind der Zuweisungsoperator (=), das Argument Buttons und das Argument Title nicht notwendig. In der folgenden Übung wird außer dem Argument Title keiner dieser Bestandteile verwendet. Informationen dazu (z.B. die verschiedenen Schaltflächen, die mit der Funktion MsgBox verwendet werden können, sowie zu anderen Optionen der Funktion) finden Sie in der Onlinehilfe zu Visual Studio unter dem Stichwort MsgBox. Tipp In Visual Basic stehen zur Anzeige von Text in einem Formular unter Verwendung eines Dialogfeldes sowohl die Funktion MsgBox als auch die Klasse MessageBox zu Verfügung. Die MessageBox-Klasse ist Teil des Namespace System.Windows.Forms, verwendet ähnliche Argumente wie MsgBox und wird mit der Methode Show angezeigt. In diesem Buch wird sowohl MsgBox als auch MessageBox verwendet. Im folgenden Abschnitt fügen Sie die Funktion MsgBox in das Programm Eingabe ein, um den vom Benutzer in das InputBox-Dialogfeld Eingabe eingegebenen Namen anzuzeigen. Eine Meldung mit der Funktion MsgBox anzeigen 1. Wenn der Code-Editor nicht angezeigt wird, doppelklicken Sie im Formular Eingabe auf die Schaltfläche Eingabe. Die Ereignisprozedur für die Prozedur Button1_Click wird im Code-Editor angezeigt. (Dies ist der Programmcode, den Sie in der letzten Übung eingegeben haben.) 2. Markieren Sie mit der Maus folgende Anweisung in der Ereignisprozedur (die letzte Zeile): Label1.Text = FullName Mit dieser Anweisung wird der Inhalt der Variablen FullName im Bezeichnungsfeld Label1 angezeigt. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 163 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 3. Drücken Sie (Entf), um die Zeile zu löschen. Die Anweisung wird aus dem Code-Editor gelöscht. 4. Geben Sie die folgende Zeile in die Ereignisprozedur ein: 163 MsgBox(FullName, , "Ergebnis der Eingabe") Diese neue Anweisung ruft die Funktion MsgBox auf, zeigt den Inhalt der Variablen FullName im Dialogfeld an und trägt die Wörter Ergebnis der Eingabe in die Titelleiste des Meldungsfeldes ein. (Das optionale Argument Buttons und die Variable ButtonClicked wurden weggelassen.) Ihre Ereignisprozedur sollte jetzt wie in Abbildung 5.6 aussehen. Abbildung 5.6 Die geänderte Ereignisprozedur Eingabe 5. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten. 6. Klicken Sie auf die Schaltfläche Eingabe, geben Sie Ihren Namen in das Eingabefeld ein und klicken Sie dann auf OK. Die Eingabe wird im Programm in der Variablen FullName gespeichert und in einem Meldungsfeld anzeigt. Ihre Bildschirmanzeige sollte nun etwa wie in Abbildung 5.7 aussehen. Abbildung 5.7 Der eingegebene Name wird in einem Meldungsfeld angezeigt 7. Klicken Sie auf OK, um das Meldungsfeld zu schließen. Dann klicken Sie auf Beenden, um das Programm zu beenden. Das Programm wird beendet, und die Entwicklungsumgebung wird wieder angezeigt. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 164 Wednesday, December 14, 2005 11:02 AM 164 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Bestimmte Datentypen verwenden Der Datentyp String eignet sich besonders zur Verwaltung von Text in Programmen. Aber welcher Datentyp sollte für Zahlen, Datumsangaben und andere Arten Informationen verwendet werden? Zur Sicherstellung einer effizienten Speicherverwaltung stehen in Visual Basic unterschiedliche Datentypen für Variablen zur Verfügung. Viele dieser Datentypen werden Ihnen wahrscheinlich aus früheren Versionen von BASIC oder Visual Basic bekannt vorkommen. Außerdem wurden in Visual Studio 2005 einige ältere Datentypen verändert, und es wurden neue Datentypen hinzugefügt, um die effiziente Verarbeitung von Daten in Anwendungen für neuere 64-Bit-Computer zu gewährleisten. Tabelle 5.1 zeigt die grundlegenden Datentypen von Visual Basic 2005. Erfahrene Programmierer werden vielleicht die vier neuen Datentypen von Visual Studio 2005 entdecken: SByte, UShort, UInteger und ULong. SByte kann sowohl positive als auch negative Werte enthalten. Die anderen drei neuen Datentypen können lediglich positive Werte enthalten. Dafür bieten sie im Gegensatz zu ihren Entsprechungen, die positiv und negativ sein können, einen doppelt so großen Wertebereich an (siehe z.B. Short und UShort in der Tabelle). Um die optimale Leistungsfähigkeit Ihrer Programme sicherzustellen, sollte der richtige Datentyp mit der richtigen Größe für die jeweiligen Variablen gewählt werden. In der nächsten Übung werden Sie einige dieser Datentypen verwenden. Tipp Die Speichergröße von Variablen wird in Bit angegeben. Zum Speichern eines Standardtastaturzeichens (ASCII) werden acht Bit benötigt (8 Bit entsprechen 1 Byte). Datentyp Größe Wertebereich Beispiel Short 16 Bit -32.768 bis 32.767 Dim Vogel As Short Vogel = 12500 UShort 16 Bit 0 bis 65.535 Dim Tage As UShort Tage = 55000 Integer 32 Bit -2.147.483.648 bis 2.147.483.647 Dim Insekten As Integer Insekten = 37500000 UInteger 32 Bit 0 bis 4.294.967.295 Dim Insekten As UInteger Insekten = 3000000000 Long 64 Bit -9.223.372.036.854.775.808 bis 9223.372.036.854.775.807 Dim WorldPop as Long WorldPop = 4800000004 ULong 64 Bit 0 bis 18.446.744.073.709.551.615 Dim Sterne as ULong Sterne = 18000000000000000000 Single 32-BitGleitkomma -3,402823E38 bis 3,402823E38 Dim Preis As Single Preis = 899.99 Double 64-BitGleitkomma -1,79769313486231E308 bis 1,79769313486231E308 Dim Pi As Double Pi = 3.1415926535 Decimal 128 Bit Werte bis zu +/-79.228 x 1024 Dim Schulden As Decimal Schulden = 7600300.50 Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 165 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Datentyp Größe Wertebereich Beispiel Byte 8 Bit 0 bis 255 (keine negativen Zahlen) Dim RetKey As Byte RetKey = 13 SByte 8 Bit -128 bis 127 Dim NegWert As SByte NegWert = –20 Char 16 Bit Jedes Unicodesymbol im Bereich von 0 bis 65.535 Dim UnicodeChar As Char UnicodeChar = "Ä" String Normalerweise 16 Bit pro Zeichen 0 bis etwa 2 Milliarden 16-Bit-Unicodezeichen Dim Hund As String Hund = "Dackel" Boolean 16 Bit True oder False (in Konvertierungen wird 0 in False und alle anderen Werte werden in True umgewandelt) Dim Flag as Boolean Flag = True Date 64 Bit 1. Januar 0001 bis 31. Dezember 9999 Dim Geburtstag as Date Geburtstag = #3/1/1963# 165 Tabelle 5.1 Grundlegende Datentypen Grundlegende Datentypen im Programmcode verwenden Das Programm Datentypen veranschaulicht die grundlegenden Datentypen im Programmcode. 1. Wählen Sie im Menü Datei den Befehl Projekt öffnen. Daraufhin wird das Dialogfeld Projekt öffnen angezeigt. 2. Öffnen Sie das Projekt Datentypen aus dem Ordner c:\vb05sfs\kap05\Datentypen. 3. Wenn das Formular des Projekts nicht sichtbar ist, klicken Sie im Projektmappen-Explorer auf Form1.vb und dann auf die Schaltfläche Ansicht-Designer. Datentypen ist ein komplettes Visual Basic-Programm, mit dem die Funktion einiger grundlegender Datentypen demonstriert wird. Sie werden das Programm ausführen und sich ansehen, wie die verschiedenen Datentypen während der Programmausführung aussehen. Anschließend werden Sie erfahren, wie die Variablen deklariert und im Programmcode verwendet werden. Außerdem lernen Sie, wo Variablendeklarationen abgelegt werden müssen, damit Sie allen Ereignisprozeduren Ihres Programms zur Verfügung stehen. 4. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten. Daraufhin wird das in Abbildung 5.8 dargestellte Anwendungsfenster angezeigt. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 166 Wednesday, December 14, 2005 11:02 AM 166 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Abbildung 5.8 Das Programm Datentypen während der Ausführung Mit der Anwendung Datentypen können Sie elf Datentypen ausprobieren, inklusive Integer, Single und Date. Wenn Sie im Listenfeld auf den Namen eines Datentyps klicken, zeigt das Programm einen Beispielwert dieses Datentyps an. 5. Klicken Sie im Listenfeld auf den Datentyp Integer. Die Zahl 37500000 wird im Beispielfeld angezeigt (siehe Abbildung 5.9). Beachten Sie, dass bei den Datentypen Short, Integer und Long Tausendertrennzeichen weder eingefügt noch angezeigt werden können. Zum Anzeigen von Tausendertrennzeichen müssen Sie die Funktion Format verwenden. Abbildung 5.9 Bei der Auswahl eines Datentyps wird ein Beispielwert angezeigt 6. Klicken Sie im Listenfeld auf den Datentyp Date. Das Datum 01.03.1963 wird im Beispielfeld angezeigt. 7. Klicken Sie auf jeden Datentyp im Listenfeld und beobachten Sie, wie Visual Basic diesen Datentyp im Beispielfeld darstellt. 8. Klicken Sie auf die Schaltfläche Beenden, um das Programm zu beenden. In den folgenden Schritten werden Sie untersuchen, wie grundlegende Datentypen deklariert und in der Ereignisprozedur ListBox1_SelectedIndexChanged eingesetzt werden. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 167 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 9. 167 Doppelklicken Sie auf das Formular (nicht auf eines der Objekte im Formular) und vergrößern Sie den Code-Editor, damit mehr vom Programmcode sichtbar ist. Der Code-Editor sollte jetzt in etwa wie in Abbildung 5.10 aussehen. Abbildung 5.10 Der Code-Editor Sie sehen oben im Code-Editor etwa ein Dutzend Programmanweisungen, mit denen die elf Variablen des Programms deklariert werden (eine Variable für jeden grundlegenden Datentyp in Visual Basic). (Es wurde kein Beispiel für die Datentypen SByte, UShort, UInteger und ULong erstellt, da sie den entsprechenden Typen mit bzw. ohne negatives Vorzeichen entsprechen.) Durch die Angabe der Dim-Anweisungen im Codeinitialisierungsbereich des Formulars wird sichergestellt, dass die Variablen in allen Ereignisprozeduren des Formulars gültig und einsetzbar sind. Damit kann z.B. der Wert einer Variablen in einer Ereignisprozedur eingestellt und in einer anderen gelesen werden. Normalerweise gelten Variablen nur innerhalb der Ereignisprozedur, in der sie deklariert wurden. Damit Variablen überall im Formular gültig sind, müssen sie am Anfang des Formularcodes deklariert werden. Tipp Die Variablen wurden so benannt wie in Tabelle 5.1. in der Spalte Beispiel angegeben, um diese Beispiele im Programmcode zu veranschaulichen. 10. Führen Sie im Code-Editor einen Bildlauf nach unten durch und schauen Sie sich die Ereignisprozedur Form1_Load genauer an. Mit den in Abbildung 5.11 zu sehenden Anweisungen werden Einträge in das ListBox-Objekt des Programms eingefügt. (Eine ähnliche Syntax mit vergleichbaren Anweisungen wurde in Kapitel 3 verwendet.) Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 168 Wednesday, December 14, 2005 11:02 AM 168 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Abbildung 5.11 In der Ereignisprozedur Form1.Load werden Einträge für das ListboxObjekt definiert 11. Führen Sie einen Bildlauf nach unten durch und sehen Sie sich die Ereignisprozedur ListBox1_SelectedIndexChanged genauer an. Die Ereignisprozedur ListBox1_SelectedIndexChanged verarbeitet die im Listenfeld getroffene Auswahl und sollte wie in Abbildung 5.12 aussehen. Abbildung 5.12 Die Ereignisprozedur ListBox1_SelectedIndexChanged Der nächste Abschnitt der Ereignisprozedur wird auch als Select Case-Kontrollstruktur bezeichnet. Im nächsten Kapitel wird beschrieben, wie mit dieser Gruppe von Programmanweisungen eine von mehreren Optionen ausgewählt wird. Im Augenblick beachten Sie nur, dass in jedem Abschnitt des Select CaseBlocks einer der Variablen (mit den grundlegenden Variablentypen) ein Beispielwert zugewiesen wird. Im direkten Anschluss wird jeweils die Variable in die TextEigenschaft des Objekts Label3 übertragen, um den Wert im Formular anzuzeigen. Ähnlich strukturierter Code wurde bereits in Kapitel 3 verwendet, um Listenfeldauswahlen zu verarbeiten. Diese Vorgehensweise hinsichtlich der Verwendung von Listenfeldern und Datentypen ist empfehlenswert. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 169 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 169 Tipp Wenn in einem Projekt mehrere Formulare verwendet werden, müssen die Variablen etwas anders deklariert (und platziert) werden, damit sie für das gesamte Programm (also in jedem Formular des Projekts) gelten. Dazu muss mit dem Schlüsselwort public eine so genannte öffentliche oder globale Variable deklariert werden. Diese wird in einem Codemodul deklariert, d.h. einer speziellen Datei, die Deklarationen und Prozeduren enthält, die nicht zu einem bestimmten Formular gehören. Weitere Informationen zur Erstellung von globalen Variablen in Codemodulen finden Sie in Kapitel 10. 12. Blättern Sie durch die Ereignisprozedur ListBox1_SelectedIndexChanged und sehen Sie sich jede der Variablenzuweisungen genau an. Wenn Sie möchten, können Sie die Daten in einigen der Variablenzuweisungen ändern und dann das Programm ausführen, um zu sehen, wie die Daten angezeigt werden. Probieren Sie beispielsweise, den Variablen Werte außerhalb ihrer Gültigkeitsbereiche (siehe Tabelle 5.1 weiter vorn in diesem Kapitel) zuzuweisen. Wenn es zu einem solchen Fehler kommt, unterstreicht Visual Basic den fehlerhaften Wert im CodeEditor mit einer Wellenlinie, und das Programm kann erst ausgeführt werden, nachdem der Fehler behoben wurde. Um genauere Informationen zum Fehler zu erhalten, halten Sie den Mauszeiger über den mit einer Wellenlinie unterstrichenen Wert. Daraufhin wird ein QuickInfo zum aufgetretenen Problem angezeigt. 13. Falls Sie Ihre Änderungen speichern möchten, klicken Sie in der Standardsymbolleiste auf die Schaltfläche Alle speichern. Benutzerdefinierte Datentypen Sie können in Visual Basic selbst Datentypen definieren. Dies ist besonders nützlich, wenn eine Gruppe von Daten bearbeitet wird, die naturgemäß zusammengehören, aber in verschiedene Datenkategorien fallen. Ein benutzerdefinierter Datentyp (oder UDT für User-Defined Datatype) kann mit einer Structure-Anweisung definiert werden. Die entsprechenden Variablen werden mit der Dim-Anweisung deklariert. (Die Anweisung Structure kann nicht in eine Ereignisprozedur eingefügt werden. Sie muss sich zusammen mit anderen Variablendeklarationen im oberen Bereich des Formulars oder in einem Codemodul befinden.) Mit der folgenden Deklaration wird beispielsweise ein benutzerdefinierter Datentyp namens Mitarbeiter definiert, mit dem Name, Geburtsdatum und Einstellungsdatum der Mitarbeiter einer Firma gespeichert werden können: Structure Mitarbeiter Dim Name As String Dim Geburtsdatum As Date Dim Einstellungsdatum As Date End Structure Nachdem der neue Datentyp erstellt worden ist, kann er im Programmcode für das Formular oder in den Ereignisprozeduren des Moduls eingesetzt werden. Die folgenden Anweisungen verwenden den neuen Datentyp Mitarbeiter. Die erste Anweisung erstellt eine Variable namens ProduktManager mit dem Datentyp Mitarbeiter. Die zweite Anweisung weist den Namen »Manfred Jäger« der Variablenkomponente Name zu: Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 170 Wednesday, December 14, 2005 11:02 AM 170 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Dim ProduktManager As Mitarbeiter ProduktManager.Name = "Manfred Jäger" Hier werden Parallelen zum Einstellen einer Eigenschaft deutlich. In Visual Basic wird zur Darstellung der Beziehung zwischen benutzerdefinierten Datentypen und Komponentenvariablen die gleiche Notation wie für die Beziehung zwischen Objekten und Eigenschaften verwendet. Konstanten: Variablen, die sich nicht ändern Wenn eine Variable einen Wert enthält, der sich zur Laufzeit nicht ändern soll (z.B. die Zahl Pi, eine andere feste mathematische Größe oder der Mehrwertsteuersatz), sollte dieser Wert als Konstante anstatt als Variable gespeichert werden. Eine Konstante ist ein Name, der eine Zahl oder Zeichenfolge repräsentiert, der nach der Deklaration nicht mehr geändert werden kann. Mit Konstanten erhöhen Sie die Lesbarkeit und Verständlichkeit des Programmcodes. Zudem lässt sich Speicher sparen, die Fehlerwahrscheinlichkeit wird reduziert und umfassende Änderungen am Programmcode werden wesentlich erleichtert. Konstanten funktionieren weitgehend wie Variablen. Im Unterschied zu Variablen werden sie mit dem Schlüsselwort Const deklariert (siehe folgendes Beispiel): Const Pi As Double = 3.14159265 Die obige Anweisung erzeugt eine Konstante namens Pi, die im Programmcode anstelle des Wertes von Pi verwendet werden kann. Wenn eine Konstante allen Objekten und Ereignisprozeduren in Ihrem Formular zur Verfügung stehen soll, müssen Sie sie am Anfang des Formularcodes zusammen mit den anderen Variablen- und Strukturdeklarationen angeben, die in allen Ereignisprozeduren des Formulars gelten sollen. Soll eine Konstante allen Formularen und Modulen eines Programms zur Verfügung stehen (und nicht nur Form1), muss die Konstante in einem Codemodul erstellt werden und ihr muss das Schlüsselwort Public vorangestellt werden. Zum Beispiel: Public Const Pi As Double = 3.14159265 Im folgenden Abschnitt wird gezeigt, wie eine Konstante in einer Ereignisprozedur eingesetzt wird. Eine Konstante in einer Ereignisprozedur verwenden 1. Wählen Sie im Menü Datei den Befehl Projekt öffnen. Daraufhin wird das Dialogfeld Projekt öffnen angezeigt. 2. Öffnen Sie das Projekt Konstantentest aus dem Ordner c:\vb05sfs\kap05\Konstantentest. 3. Wenn das Formular des Projekts nicht sichtbar ist, klicken Sie im Projektmappen-Explorer auf Form1.vb und dann auf die Schaltfläche Ansicht-Designer. Das Formular der Anwendung Konstantentest wird im Windows Forms-Designer angezeigt. Konstantentest stellt lediglich ein »Programmgerüst« bereit. Die Benutzeroberfläche ist vorhanden, aber der Programmcode muss noch eingegeben werden. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 171 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 4. 5. 171 Doppelklicken Sie im Formular auf die Schaltfläche Konstante anzeigen. Im Code-Editor wird die Ereignisprozedur Button1_Click angezeigt. Geben Sie folgende Anweisungen in die Ereignisprozedur Button1_Click ein: Const Pi As Double = 3.14159265 Label1.Text = Pi 6. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten, um das Programm auszuführen. 7. Klicken Sie auf die Schaltfläche Konstante anzeigen. Die Konstante Pi wird im Bezeichnungsfeld angezeigt (siehe Abbildung 5.13). Abbildung 5.13 Der Wert der Konstanten wird im Bezeichnungsfeld angezeigt 8. Klicken Sie auf die Schaltfläche Beenden, um das Programm zu beenden. Formeln werden mithilfe der Visual Basic-Operatoren gebildet. Konstanten sind im Programmcode sehr hilfreich, besonders in mathematischen Formeln, wie z.B. Fläche = 2Πr^2. Im nächsten Abschnitt wird beschrieben, wie Operatoren und Variablen zur Erstellung ähnlicher Formeln eingesetzt werden können. Die Visual Basic-Operatoren verwenden Eine Formel ist eine Anweisung, die Zahlen, Variablen, Operatoren und Schlüsselwörter oder eine Kombination dieser Elemente verwendet, um einen Wert zu berechnen. Visual Basic verfügt über verschiedene Sprachelemente, die in Formeln verwendet werden können. In diesem Abschnitt werden Sie mathematische Operatoren kennen lernen. Operatoren sind Symbole, mit denen die Teile einer Formel verknüpft werden. Von wenigen Ausnahmen abgesehen, entsprechen diese Symbole den mathematischen Symbolen, die Sie im täglichen Leben verwenden. Ihre Funktion erklärt sich oft von selbst. In den nachfolgenden Übungen wird die Funktion dieser Operatoren veranschaulicht. In Visual Basic stehen die in Tabelle 5.2 aufgeführten Operatoren zur Verfügung. Operator Beschreibung + Addition – Subtraktion * Multiplikation Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 172 Wednesday, December 14, 2005 11:02 AM 172 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Operator Beschreibung / Division \ Integer-Division (nur Ganzzahlen) Mod Restwertdivision ^ Potenzierung & Zeichenfolgenverkettung Tabelle 5.2 In Visual Basic verfügbare Operatoren Mathematische Grundoperationen: Die Operatoren +, -, * und / Die Operatoren für Addition, Subtraktion, Multiplikation und Division sind relativ leicht verständlich und können in jeder Formel eingesetzt werden, die zur Berechnung von Zahlen oder numerischen Variablen dient. Die folgende Übung zeigt, wie Sie diese Operatoren in einem Programm verwenden. Mit einfachen Operatoren arbeiten 1. Wählen Sie im Menü Datei den Befehl Projekt öffnen. 2. Öffnen Sie das Projekt Grundrechenarten im Ordner c:\vb05sfs\kap05\Grundrechenarten. 3. Wenn das Formular des Projekts nicht sichtbar ist, klicken Sie im Projektmappen-Explorer auf Form1.vb und dann auf die Schaltfläche Ansicht-Designer. Das Formular Grundrechenarten wird im Windows Forms-Designer angezeigt. Dieses Programm veranschaulicht, wie die Operatoren für Addition, Subtraktion, Multiplikation und Division Zahlen verarbeiten, die über die Tastatur eingegeben werden. Außerdem wird gezeigt, wie Textfelder, Optionsfelder und Schaltflächen verwendet werden können, um Benutzereingaben in einem Programm zu verarbeiten. 4. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten. Textfelder eignen sich gut zur Abfrage von Tastatureingaben vom Benutzer. Das Programm Grundrechenarten wird in der Entwicklungsumgebung ausgeführt. Es umfasst zwei Textfelder, in die der Benutzer numerische Werte eingeben kann, mehrere Operator-Optionsfelder, ein Bezeichnungsfeld zur Anzeige der Ergebnisse sowie zwei Schaltflächen (Berechnen und Beenden). 5. Geben Sie in das Textfeld Variable 1 den Wert 100 ein und drücken Sie (ÿ). Die Einfügemarke wird in das zweite Textfeld bewegt. 6. Geben Sie in das Textfeld Variable 2 den Wert 17 ein. Auf die Werte dieser Textfelder kann nun jeder der angezeigten mathematischen Operatoren angewendet werden. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 173 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 7. 173 Klicken Sie auf das Optionsfeld Addition (+) und dann auf die Schaltfläche Berechnen. Der Operator wird auf die beiden Werte angewendet. Im Feld Ergebnis erscheint die Zahl 117 (siehe Abbildung 5.14). Abbildung 5.14 Der Benutzer kann Werte angeben und die Rechenoperation auswählen, die mit den Werten ausgeführt werden soll 8. Probieren Sie auch den Subtraktions-, Multiplikations- und Divisionsoperator mit den beiden Werten aus. Klicken Sie jeweils auf Berechnen, um das Ergebnis zu berechnen. Die Ergebnisse werden im Feld Ergebnis angezeigt. Geben Sie verschiedene Zahlen in die Textfelder für die Variablen ein. (Probieren Sie z.B. Zahlen mit Kommastellen aus.) Die Variablen wurden mit dem Datentyp Double deklariert, so dass sehr große Zahlen eingegeben werden können. Führen Sie dann den folgenden Test aus und beobachten Sie die Ergebnisse. 9. Geben Sie in das Textfeld Variable 1 den Wert 100 und in das Textfeld Variable 2 den Wert 0 ein, klicken Sie auf das Optionsfeld Division (/) und klicken Sie dann auf Berechnen. Die Division durch Null ist ein Problem in mathematischen Berechnungen, da sie in der Mathematik nicht definiert ist. Wenn der Divisor extrem klein wird und gegen 0 geht, geht der Quotient gegen unendlich. Normalerweise zieht eine Division durch Null einen Laufzeitfehler nach sich (»zerodivide«). Visual Basic handhabt diese Situation aber souverän und zeigt im Ergebnis-Textfeld den Wert +unendlich an. Die Fähigkeit, in einigen Situationen eine Division durch Null handhaben zu können, ist ein Leistungsmerkmal von Visual Basic 2005. 10. Wenn Sie genug mit dem Programm experimentiert haben, klicken Sie auf die Schaltfläche Beenden. Das Programm wird beendet, und die Entwicklungsumgebung wird wieder angezeigt. Im folgenden Abschnitt werden Sie den Programmcode unter die Lupe nehmen, um herauszufinden, wie die Ergebnisse berechnet werden. Im Programm Grundrechenarten werden verschiedene Standardeingabesteuerelemente verwendet, mit denen Sie schon in Kapitel 3 gearbeitet haben. Es wird außerdem eine Ereignisprozedur mit Variablen und Operatoren eingesetzt, um einfache mathematische Formeln zu verarbeiten. Das Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 174 Wednesday, December 14, 2005 11:02 AM 174 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Programm deklariert seine Variablen im oberen Bereich des Formulars, so dass sie von allen Ereignisprozeduren in Form1 genutzt werden können. Der Programmcode des Programms Grundrechenarten 1. Doppelklicken Sie im Formular auf die Schaltfläche Berechnen. Im Code-Editor wird die Ereignisprozedur Button1_Click angezeigt. Im oberen Bereich des Formularcodes werden mit der folgenden Anweisung zwei Variablen des Typs Double deklariert: 'Variablen FirstNum und SecondNum deklarieren Dim FirstNum, SecondNum As Double Es wurde auf den Typ Double zurückgegriffen, da ein weit reichender allgemeiner Variablentyp notwendig war, der ganz verschiedene Zahlen abarbeiten kann, z.B. Ganzzahlen, Zahlen mit Nachkommastellen, besonders große und sehr kleine Zahlen usw. Die Variablen werden in einer einzigen Zeile mit der bereits in diesem Kapitel erwähnten Kurzform deklariert. Dabei erhalten beide Variablen FirstNum und SecondNum den Typ Double, obwohl der Datentyp nur einmal angegeben wird. Die beiden Variablen dienen dazu, die Werte aufzunehmen, die in das erste und das zweite Textfeld eingegeben werden. 2. Führen Sie im Code-Editor einen Bildlauf nach unten durch, um den Inhalt der Ereignisprozedur Button1_Click anzuzeigen. Ihre Bildschirmanzeige sollte jetzt etwa wie in Abbildung 5.15 aussehen. Mit den ersten beiden Anweisungen der Ereignisprozedur werden die Daten, die in die Textfelder eingegeben wurden, in die Variablen FirstNum und SecondNum kopiert. 'Werte aus Textfeldern den Variablen zuweisen FirstNum = TextBox1.Text SecondNum = TextBox2.Text Das TextBox-Steuerelement handhabt die Übergabe der Daten über die TextEigenschaft. Diese Eigenschaft akzeptiert den vom Benutzer eingegebenen Text und stellt ihn zur Verarbeitung im Programm bereit. In diesem Buch wird das TextBox-Steuerelement häufig verwendet. Wenn bei einem Textfeld die Eigenschaft Multiline auf True gesetzt und die Größe entsprechend geändert wird, können mehrere Zeilen Text angezeigt werden (falls notwendig, sogar eine ganze Datei). Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 175 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 175 Abbildung 5.15 Die Ereignisprozedur Button1_Click Nachdem die Werte aus den Textfeldern den Variablen zugewiesen wurden, stellt die Ereignisprozedur fest, welches Optionsfeld ausgewählt wurde, berechnet die mathematische Formel und zeigt das Ergebnis in einem dritten Textfeld an. Der erste Optionsfeldtest sollte etwa folgendermaßen aussehen: 'Ermitteln, welches Optionsfeld gewählt wurde, und Ergebnis berechnen If RadioButton1.Checked = True Then TextBox3.Text = FirstNum + SecondNum End If Wie Sie vielleicht noch aus Kapitel 3 wissen, kann jeweils nur ein Optionsfeld in einem Gruppenfeld ausgewählt werden. Über die Eigenschaft Checked kann festgestellt werden, ob ein Optionsfeld ausgewählt wurde oder nicht. Wenn die Eigenschaft Checked den Wert True hat, wurde das Optionsfeld ausgewählt. Hat sie dagegen den Wert False, wurde die Schaltfläche nicht ausgewählt. Nach diesem einfachen Test kann das Ergebnis berechnet und im dritten Textfeld angezeigt werden. Mit der vorangegangenen Übung haben Sie einen guten Überblick über die Verwendung grundlegender mathematischer Operatoren erhalten. (Weitere Informationen zur Syntax von If…Then-Tests und -Kontrollstrukturen finden Sie in Kapitel 6.) Damit haben Sie Ihre Arbeit mit dem Programm Grundrechenarten abgeschlossen. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 176 Wednesday, December 14, 2005 11:02 AM 176 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Kurzoperatoren Eine interessante Funktion von Visual Basic 2002, 2003 und 2005 ist die Möglichkeit zur Verwendung von Kurzoperatoren für mathematische Operationen und Zeichenfolgeoperationen, in denen der Wert einer vorhandenen Variablen geändert wird. Wenn beispielsweise das Symbol »+« mit dem Symbol »=« kombiniert wird, kann eine Addition zur Variablen ohne Wiederholung des Variablennamens in der Formel durchgeführt werden. Die Formel X = X + 6 kann also mit der Syntax X += 6 erstellt werden. Tabelle 5.3 zeigt einige Beispiele für die Kurzoperatoren. Operation Ausführliche Syntax Verkürzte Syntax Addition (+) X=X+6 X += 6 Subtraktion (–) X=X– 6 X –= 6 Multiplikation (*) X=X* 6 X *= 6 Division (/) X=X/ 6 X /= 6 Integerdivision (\) X=X\ 6 X \= 6 Potenzierung (^) X=X^6 X ^= 6 Zeichenfolgenverkettung (&) X = X & “ABC” X &= "ABC" Tabelle 5.3 Beispiele für die neuen Kurzoperatoren Weitere Operatoren: \, Mod, ^ und & Zusätzlich zu den vier grundlegenden mathematischen Operatoren verfügt Visual Basic über vier erweiterte Operatoren für Integerdivision (\), Divisionsrest (Mod), Potenzierung (^) und Zeichenfolgenverkettung (&). Diese Operatoren können in speziellen mathematischen Formeln und Textverarbeitungsanwendungen eingesetzt werden. Das folgende Programm (eine Variante des Programms Grundrechenarten) zeigt, wie Sie diese Operatoren in einem Programm verwenden. Mit erweiterten Operatoren arbeiten 1. Wählen Sie im Menü Datei den Befehl Projekt öffnen. Daraufhin wird das Dialogfeld Projekt öffnen angezeigt. 2. Öffnen Sie das Projekt Weitere Operatoren aus dem Ordner c:\vb05sfs\kap05\Weitere Operatoren. 3. Wenn das Formular des Projekts nicht sichtbar ist, klicken Sie im Projektmappen-Explorer auf Form1.vb und dann auf die Schaltfläche Ansicht-Designer. Das Formular der Anwendung Weitere Operatoren wird im Windows FormsDesigner angezeigt. Das Programm Weitere Operatoren entspricht im Prinzip dem Programm Grundrechenarten. Es werden aber andere Operatoren in den Optionsfeldern und im Programm verwendet. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 177 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 177 4. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten. Das Programm enthält zwei Textfelder, in die Sie numerische Werte eingeben können, eine Gruppe von Optionsfeldern zur Auswahl der Operatoren, ein Textfeld für die Anzeige des Ergebnisses und zwei Schaltflächen. 5. Geben Sie in das Textfeld Variable 1 den Wert 9 ein und drücken Sie (ÿ). 6. Geben Sie in das Textfeld Variable 2 den Wert 2 ein. Verwenden Sie nun einen der angezeigten erweiterten Operatoren zur Berechnung der Werte, die Sie in die Textfelder eingegeben haben. 7. Klicken Sie auf das Optionsfeld Integerdivision (\) und dann auf die Schaltfläche Berechnen. Der Operator wird auf die beiden Werte angewendet. Im Ergebnisfeld erscheint die Zahl 4 (siehe Abbildung 5.16). Abbildung 5.16 Die Anwendung Weitere Operatoren stellt spezielle mathematische Operatoren zur Auswahl Die Integerdivision liefert nur ganzzahlige Ergebnisse. Obwohl 9 geteilt durch 2 eigentlich 4,5 ergibt, liefert die Integerdivision nur den ersten Teil dieses Ergebnisses zurück, die Ganzzahl 4. Diese Art von Berechnung ist sinnvoll, wenn mit Einheiten gearbeitet wird, die nicht zerteilt werden können, wie z.B. die Anzahl von Erwachsenen, die in einem Auto Platz haben. 8. Klicken Sie auf das Optionsfeld Restwert (Mod) und dann auf die Schaltfläche Berechnen. Im Ergebnisfeld erscheint die Zahl 1. Dieser Operator gibt den Restwert einer ganzzahligen Division zurück (der Rest, der nach der Division zweier ganzer Zahlen bleibt). Da 9 geteilt durch 2 das Ergebnis 4 mit dem Rest 1 hat (2 × 4 + 1 = 9), liefert der Operator Mod das Ergebnis 1. Der Operator Mod hilft bei der Verwaltung von Restwertberechnungen, wie z.B. das restliche Wechselgeld nach einer finanziellen Transaktion. 9. Klicken Sie auf das Optionsfeld Potenz (^) und dann auf die Schaltfläche Berechnen. Im Ergebnisfeld erscheint die Zahl 81. Der Potenzierungsoperator (^) potenziert die Zahl aus dem Feld Variable 1 mit dem Wert aus dem Feld Variable 2. Da 9^2 gleich 81 ist, liefert der Operator ^ das Ergebnis 81. Die Potenzierung wird in einer Visual Basic-Formel als 9 ^ 2 geschrieben. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 178 Wednesday, December 14, 2005 11:02 AM 178 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 10. Klicken Sie auf das Optionsfeld Verkettung und dann auf die Schaltfläche Berechnen. Im Ergebnisfeld erscheint die Zahl 92. Der Verkettungsoperator (&) kombiniert die beiden Zeichenfolgen einer Formel (durch Verkettung, nicht Addition). Das Ergebnis (im Beispiel 92) ist keine Zahl. Die Zeichenfolgenverkettung kann zwar mit numerischen Variablen durchgeführt werden, in der Regel werden aber Zeichenfolgenwerte oder Variablen vom Typ String verkettet. Da die Variablen FirstNum und SecondNum mit dem Typ Double deklariert wurden, können mit dem gezeigten Programmcode keine Buchstaben oder Wörter kombiniert werden. Mit folgendem Test wird beispielsweise eine Fehlermeldung erzeugt und das Programm beendet. 11. Geben Sie in das Textfeld Variable 1 den Wert Geburts ein und in das Textfeld Variable 2 den Wert tag. Vergewissern Sie sich, dass die Zeichenfolgenverkettung ausgewählt ist, und klicken Sie dann auf Berechnen. Visual Basic kann die eingegebenen Textwerte nicht verarbeiten. Das Programm wird beendet, und es wird eine Fehlermeldung am Bildschirm angezeigt. Diese Art von Fehler wird auch als »Laufzeitfehler« bezeichnet. Der Fehler tritt nicht während der Entwicklung oder Kompilierung des Programms auf, sondern erst während der Programmausführung, wenn eine Situation eintritt, mit der das Programm nicht umgehen kann. Die Fehlermeldung lautet Ungültige Konvertierung von der Zeichenfolge Geburts in Typ Double und bedeutet, dass die in die Textfelder eingegebenen Wörter (»Geburts« und »tag«) nicht den Variablen mit dem Typ Double zugewiesen werden konnten. Der Variablentyp Double kann nur Zahlen aufnehmen. 12. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen beenden, um die Programmausführung zu stoppen. Ihr Programm wird beendet, und die Entwicklungsumgebung wird wieder angezeigt. Tipp In Kapitel 8 erfahren Sie alles über das Debugging von Visual Basic-Programmen. Im Debugmodus steht eine ganze Reihe an Möglichkeiten zum Aufspüren von Fehlern im Programmcode zur Verfügung. Betrachten Sie nun den Programmcode, um zu sehen, wie die Variablen deklariert und die erweiterten Operatoren verwendet wurden. 13. Führen Sie einen Bildlauf zu dem Code im oberen Bereich des Code-Editors durch. Es wird dann folgender Kommentar und folgende Programmanweisung angezeigt: 'Variablen FirstNum und SecondNum deklarieren Dim FirstNum, SecondNum As Double Wie in der vorherigen Übung beschrieben, sind FirstNum und SecondNum die Variablen, in denen die Zahlen aus den Objekten TextBox1 und TextBox2 abgelegt werden. Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 179 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 179 14. Ändern Sie den Datentyp jetzt von Double in String, damit die Funktion des Zeichenfolgenverkettungsoperators (&) getestet werden kann. 15. Führen Sie dann im Code-Editor einen Bildlauf nach unten durch, um zu sehen, wie die erweiterten Operatoren im Programmcode verwendet werden. Es wird folgender Code angezeigt: 'Werte aus Textfeldern den Variablen zuweisen FirstNum = TextBox1.Text SecondNum = TextBox2.Text 'Ermitteln, welches Optionsfeld gewählt wurde, und Ergebnis berechnen If RadioButton1.Checked = True Then TextBox3.Text = FirstNum \ SecondNum End If If RadioButton2.Checked = True Then TextBox3.Text = FirstNum Mod SecondNum End If If RadioButton3.Checked = True Then TextBox3.Text = FirstNum ^ SecondNum End If If RadioButton4.Checked = True Then TextBox3.Text = FirstNum & SecondNum End If Genauso wie das Programm Grundrechenarten lädt dieses Programm die Daten aus den Textfeldern und weist sie den Variablen FirstNum und SecondNum zu. Das Programm überprüft dann, welches Optionsfeld vom Benutzer markiert wurde, und berechnet die gewünschte Formel. In dieser Ereignisprozedur werden die Operatoren Integerdivision (\), Restwert (Mod), Potenzierung (^) und Zeichenfolgenverkettung (&) verwendet. Nachdem Sie den Datentyp der Variablen in String geändert haben, kann der Operator & in Verbindung mit Text eingesetzt werden. 16. Klicken Sie auf die Schaltfläche Debuggen starten. 17. Geben Sie in das Textfeld Variable 1 den Wert Geburts ein und in das Textfeld Variable 2 den Wert tag. Vergewissern Sie sich, dass die Zeichenfolgenverkettung ausgewählt ist, und klicken Sie dann auf Berechnen. Das Programm verkettet nun die beiden Zeichenfolgen ohne Laufzeitfehler (siehe Abbildung 5.17). Abbildung 5.17 Nach der Änderung des Variablentyps werden die eingegebenen Zeichenfolgen verkettet Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 180 Wednesday, December 14, 2005 11:02 AM 180 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 18. Klicken Sie auf die Schaltfläche Beenden, um das Programm zu beenden. Damit haben Sie Ihre Arbeiten am Programm Weitere Operatoren abgeschlossen. Tipp Laufzeitfehler können kaum völlig vermieden werden. Selbst sehr gründlich entwickelte Anwendungsprogramme wie Microsoft Word oder Microsoft Excel stoßen gelegentlich auf Fehlersituationen, die sie nicht verarbeiten können, und erzeugen Laufzeitfehler oder gar Programm- oder Systemabstürze. Solche Situationen können vermieden werden, wenn das Programm so konzipiert wird, dass alle relevanten Datentypen unter allen Betriebsbedingungen korrekt verarbeitet werden. In Kapitel 9 werden Sie ein weiteres nützliches Verfahren zur Verhinderung von Laufzeitfehlern kennen lernen: die strukturierte Fehlerbehandlung. Mathematische Funktionen des .NET Frameworks verwenden Je nach Zielsetzung eines Programms sind oft kompliziertere Berechnungen notwendig. Beispielsweise soll eine Zahl gerundet werden, ein komplexer mathematischer Ausdruck berechnet oder Zufallszahlen in einem Programm generiert werden. Die in Tabelle 5.4 gezeigten mathematischen Methoden erleichtern die Durchführung dieser und ähnlicher Aufgaben in Formeln. Diese Methoden werden vom .NET Framework bereitgestellt. Es handelt sich dabei um eine Klassenbibliothek, mit der die Leistungsfähigkeit des Betriebssystems Windows genutzt und viele häufig auftretende Programmieraufgaben erledigt werden können. Das .NET Framework ist ein wichtiges Feature von Visual Studio, das Visual Basic, Visual C++, Visual C#, Visual J# und andere Tools von Visual Studio gemeinsam nutzen. Es ist eine Basisschnittstelle, die Teil des eigentlichen Betriebssystems wird, und wird auf jedem Computer eingerichtet, auf dem Visual Studio-Programme ausgeführt werden. Neuheiten im Microsoft .NET Framework 2.0 Visual Studio 2005 enthält eine neue Version des .NET Frameworks – Microsoft .NET Framework 2.0. Diese Version unterstützt 64-Bit-Erweiterungen für 32-BitProzessoren (AMD64-Chip und Intel-Prozessoren mit EM64T-Technologie). Es gibt in der Version 2.0 außerdem neue Klassen, die die Funktionalität erweitern (optimierter Zugriff auf Dateisysteme, Drucker und die Windows Registry) und neue Klassen, mit denen das Schreiben von Programmen vereinfacht wird, da vorhandene Objekte und Ressourcen besser zusammengefasst werden können. Viele der Verbesserungen des .NET Frameworks 2.0 stehen Ihnen bei der Arbeit mit Visual Basic 2005 automatisch zur Verfügung. Vor allem bei der fortgeschrittenen Programmierung sind viele davon eine effektive Hilfe. Tabelle 5.4 zeigt einen Teil der mathematischen Methoden der Klasse System.Math. Das Argument n steht für eine Zahl, Variable oder einen Ausdruck, die bzw. der von der Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 181 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 181 Methode ausgewertet werden soll. Wenn Sie diese Methoden in Ihren eigenen Programmen verwenden möchten, müssen Sie die Anweisung Imports System.Math im Code-Editor am Anfang des Formularcodes eintragen. Methode Zweck Abs(n) Gibt den absoluten Wert von n zurück. Atan(n) Gibt den Arcustangens von n zurück (in Radianten). Cos(n) Gibt den Cosinus des Winkels n zurück. Der Winkel n wird in Rad ausgedrückt. Exp(n) Gibt die Konstante en zurück. Sign(n) Gibt -1 zurück, wenn n kleiner als 0 ist. Gibt 0 zurück, wenn n gleich 0 ist. Gibt +1 zurück, wenn n größer als 0 ist. Sin(n) Gibt den Sinus des Winkels n zurück. Der Winkel n wird in Rad ausgedrückt. Sqrt(n) Gibt die Quadratwurzel von n zurück. Tan(n) Gibt den Tangens des Winkels n zurück. Der Winkel n wird in Rad ausgedrückt. Tabelle 5.4 Wichtige mathematische Methoden der Klasse System.Math Die Klasse System.Math zur Berechnung der Quadratwurzel verwenden 1. Wählen Sie im Menü Datei den Befehl Neues Projekt. Das Dialogfeld Neues Projekt wird angezeigt. 2. Erstellen Sie ein neues Projekt vom Typ Windows-Anwendung namens NeuFramework-Math. Das neue Projekt wird erstellt, und im Windows Forms-Designer wird ein leeres Formular angezeigt. 3. Klicken Sie in der Toolbox in der Gruppe Alle Windows Forms auf das ButtonSteuerelement und erstellen Sie im oberen Bereich des Formulars eine Schaltfläche. 4. Klicken Sie in der Toolbox auf das TextBox-Steuerelement und zeichnen Sie unter der Schaltfläche ein Textfeld. 5. Geben Sie für die Text-Eigenschaft des Button-Objekts den Text Quadratwurzel ein. 6. Doppelklicken Sie auf die Schaltfläche, um den Code-Editor aufzurufen. 7. Geben Sie ganz oben im Code-Editor oberhalb der Anweisung Public Class Form1 folgende Programmanweisung ein: Imports System.Math Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 182 Wednesday, December 14, 2005 11:02 AM 182 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Mit der Anweisung Imports wird dem Projekt eine Bibliothek mit Objekten, Eigenschaften und Methoden hinzugefügt. Diese Anweisung muss jedoch die erste Anweisung in Ihrem Programm sein. Sie muss noch vor der Deklaration der Variablen für das Formular und vor der Anweisung Public Class Form1 stehen, die Visual Basic automatisch bereitstellt. Diese spezielle Bibliothek (die System.MathKlasse) ist eine Sammlung von Objekten, Eigenschaften und Methoden, die vom .NET Framework für mathematische Operationen bereitgestellt wird. 8. Führen Sie im Code-Editor einen Bildlauf nach unten durch und fügen Sie den folgenden Code in der Ereignisprozedur Button1_Click zwischen die Anweisungen Private Sub und End Sub ein: Dim Ergebnis As Double Ergebnis = Sqrt(625) TextBox1.Text = Ergebnis Mit diesen drei Anweisungen wird eine Variable namens Ergebnis mit dem Typ Double deklariert, die Methode Sqrt zur Berechnung der Quadratwurzel von 625 verwendet und die Variable Ergebnis der Text-Eigenschaft des TextBox-Objekts zugewiesen, mit dem die Lösung angezeigt wird. Tipp Das vollständige Programm finden Sie im Ordner c:\vb05sfs\kap05\FrameworkMath. 9. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Alle speichern, um Ihre Änderungen zu speichern. 10. Klicken Sie in der Standardsymbolleiste auf die Schaltfläche Debuggen starten. Das Programm Framework-Math wird in der Entwicklungsumgebung ausgeführt. 11. Klicken Sie auf die Schaltfläche Quadratwurzel. Visual Basic berechnet die Quadratwurzel von 625 und zeigt das Ergebnis (25) im Textfeld an (siehe Abbildung 5.18). Die Methode Sqrt funktioniert. Abbildung 5.18 Das Programm Framework-Math während der Ausführung Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 183 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework 12. 183 Klicken Sie auf die Schaltfläche Schließen in der Titelleiste des Formulars, um das Programm zu beenden. Wenn Sie eine bestimmte .NET Framework-Klasse in einem Programm verwenden möchten, müssen Sie mit der Anweisung Imports die entsprechende Klassenbibliothek angeben. Auf diese Weise können beliebige Klassen des .NET Frameworks benutzt werden. Beim Durcharbeiten dieses Buches werden Sie wiederholt auf diese Technik treffen. Einen Schritt weiter: Operatorrangfolge In den letzten Übungen haben Sie verschiedene mathematische Operatoren und einen Zeichenfolgenoperator ausprobiert. In Visual Basic können mehrere mathematische Operatoren in einer Formel kombiniert werden. Dabei ist nur zu beachten, dass die numerischen Variablen bzw. Ausdrücke durch einen Operator voneinander getrennt werden. Beispielsweise wird folgende Formel von Visual Basic akzeptiert: Gesamt = 10 + 15 * 2 / 4 ^ 2 Mit der Formel wird ein Wert berechnet und das Ergebnis einer Variablen namens Gesamt zugewiesen. Wie wird ein solcher Ausdruck von Visual Basic ausgewertet? Welche mathematischen Operatoren verwendet Visual Basic zuerst, um die Formel zu lösen? Wie Sie gleich sehen werden, wirkt sich die Auswertungsreihenfolge deutlich auf das Ergebnis aus. Visual Basic löst dieses Problem, indem es eine bestimmte Rangfolge für die Berechnung mathematischer Operationen festlegt. Diese Rangfolge basiert auf einer Reihe von Regeln bezüglich der Reihenfolge, in der Visual Basic die Operatoren eines Ausdrucks bewertet. Tabelle 5.5 zeigt diese Operatorrangfolge, wobei die Operatoren absteigend von der höchsten zur niedrigsten Priorität angeordnet sind. Operatoren mit derselben Priorität werden von links nach rechts in der Reihenfolge berechnet, in der sie in einem Ausdruck stehen. Die Rangfolge der Operatoren darf beim Erstellen mathematischer Formeln nie außer Acht gelassen werden. Operatoren Rangfolge () In Klammern gesetzte Werte werden immer zuerst berechnet. ^ Potenzen werden als Zweites berechnet. – Negationen (Erzeugung einer negativen Zahl) werden als Drittes berechnet. */ Multiplikationen und Divisionen werden als Viertes berechnet. \ Integerdivisionen werden als Fünftes berechnet. Mod Restwertberechnungen werden als Sechstes durchgeführt. +– Additionen und Subtraktionen werden zuletzt berechnet. Tabelle 5.5 Rangfolge mathematischer Operatoren Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 184 Wednesday, December 14, 2005 11:02 AM 184 Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Aufgrund der in Tabelle 5.5 beschriebenen Operatorrangfolge wird der Ausdruck: Endergebnis = 10 + 15 * 2 / 4 ^ 2 wie folgt berechnet: (Die in Fettschrift gesetzten Zahlen zeigen jeweils den Berechnungsschritt und die bereits berechneten Ergebnisse an.) Endergebnis Endergebnis Endergebnis Endergebnis Endergebnis = = = = = 10 + 15 * 2 / 4 ^ 2 10 + 15 * 2 / 16 10 + 30 / 16 10 + 1.875 11.875 Klammern in Ausdrücken verwenden Klammern gliedern Ausdrücke und beeinflussen die Auswertungsreihenfolge. Sie können in Formeln ein oder mehrere Klammerpaare verwenden, um die Reihenfolge der Berechnung klar festzulegen. Beispiel: Anzahl = (8 - 5 * 3) ^ 2 In der obigen Formel berechnet Visual Basic zuerst den Ausdruck in der Klammer (Ergebnis: -7) und dann die Potenz, obwohl die Potenzierung eine höhere Priorität hat als Subtraktion und Multiplikation. Außerdem können verschachtelte Klammern in Formeln eingesetzt werden. Beispiel: Anzahl = ((8 - 5) * 3) ^ 2 Hier berechnet Visual Basic zuerst die Subtraktion in der inneren Klammer, dann die äußere Klammer und dann die Potenz. Die beiden Formeln haben unterschiedliche Ergebnisse: Die erste Formel hat das Ergebnis 49 und die zweite das Ergebnis 81. Klammern können das Ergebnis mathematischer Operationen verändern, erleichtern aber auch das Lesen von Formeln. Schnellüberblick Aufgabe Aktion Eine Variable mit einem bestimmten Datentyp deklarieren Geben Sie Dim gefolgt vom Variablennamen, dem Schlüsselwort As und dem Datentyp der Variablen in den Programmcode ein. Damit die Variable in allen Ereignisprozeduren eines Formulars genutzt werden kann, muss die Deklaration im Formularcode noch vor den Ereignisprozeduren platziert werden. Beispiel: Dim Land As String Den Wert einer Variablen ändern Weisen Sie der Variablen mit dem Zuweisungsoperator (=) einen neuen Wert zu. Beispiel: Benutzereingaben aus einem Dialogfeld verarbeiten Verwenden Sie die Funktion InputBox und weisen Sie das Ergebnis einer Variablen zu. Beispiel: Land = "Japan" BenutzerName = InputBox("Wie heißen Sie?") Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6) 550.book Page 185 Wednesday, December 14, 2005 11:02 AM Kapitel 5: Visual Basic-Variablen/Operatoren und das .NET Framework Aufgabe Aktion Ausgaben in einem Dialogfeld anzeigen Verwenden Sie die Funktion MsgBox. (Die im Dialogfeld anzuzeigende Zeichenfolge kann in einer Variablen abgelegt werden.) Beispiel: 185 Vorhersage = "Regen in den Bergen." MsgBox(Vorhersage, , "Das Wetter") Eine Konstante definieren Geben Sie das Schlüsselwort Const gefolgt vom Konstantennamen, dem Schlüsselwort As, den Konstantendatentyp, dann den Zuweisungsoperator (=) und den festen Wert ein. Beispiel: Const MeinAlter As Short = 44 Eine Formel erstellen Verknüpfen Sie numerische Variablen oder Werte mit einem der sieben mathematischen Operatoren und weisen Sie das Ergebnis einer Variablen oder einer Eigenschaft zu. Beispiel: Textzeichenfolgen verknüpfen Verwenden Sie den Zeichenfolgenverkettungsoperator (&). Beispiel: Eine Klassenbibliothek aus dem .NET Framework in Ihr Programm einbinden Geben Sie die Anweisung Imports gefolgt vom Namen der gewünschten Klassenbibliothek am Anfang des Formularcodes an. Beispiel: Eine Methode aus einer eingebundenen Klassenbibliothek aufrufen Verwenden Sie den Methodennamen sowie alle notwendigen Argumente in einer Formel oder Programmanweisung. Dazu ein Beispiel für den Aufruf der Methode Sqrt aus der Klassenbibliothek System.Math: Ergebnis = 1 ^ 2 * 3 \ 4 'gleich 0 Msg = "Hello" & "," & " world!" Imports System.Math Hypotenuse = Sqrt(x ^ 2 + y ^ 2) Die Reihenfolge der Berechnung Verwenden Sie Klammern in der Formel. Beispiel: einer Formel steuern Wert1 = 1 + 2 ^ 3 \ 4 'Ergebnis: 3 Wert1 = (1 + 2) ^ ( 3 \ 4) 'Ergebnis: 1 Michael Halvorson: Microsoft Visual Basic 2005 - Schritt für Schritt. Microsoft Press 2006 (ISBN 3-86063-550-6)