Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 8,4 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
Pfeil 2 Grundlagen
  Pfeil 2.1 Variablen und Datentypen
    Pfeil 2.1.1 Namen, Werte
    Pfeil 2.1.2 Deklarationen
    Pfeil 2.1.3 Datentypen
    Pfeil 2.1.4 Gültigkeitsbereich
    Pfeil 2.1.5 Konstanten
    Pfeil 2.1.6 Enumerationen
  Pfeil 2.2 Operatoren
    Pfeil 2.2.1 Arithmetische Operatoren
    Pfeil 2.2.2 Vergleichsoperatoren
    Pfeil 2.2.3 Logische Operatoren
    Pfeil 2.2.4 Verkettungsoperator
    Pfeil 2.2.5 Zuweisungsoperatoren
    Pfeil 2.2.6 Rangfolge der Operatoren
  Pfeil 2.3 Panel, Zeitgeber, Textfeld, Zahlenauswahlfeld
    Pfeil 2.3.1 Panel
    Pfeil 2.3.2 Zeitgeber
    Pfeil 2.3.3 Textfelder
    Pfeil 2.3.4 Zahlenauswahlfeld
  Pfeil 2.4 Verzweigungen
    Pfeil 2.4.1 Einzeiliges If…Then…Else
    Pfeil 2.4.2 If…Then…Else-Block
    Pfeil 2.4.3 Select Case
    Pfeil 2.4.4 Funktion IIf
    Pfeil 2.4.5 Funktion Choose
    Pfeil 2.4.6 Übungen
  Pfeil 2.5 Kontrollkästchen, Optionsschaltfläche, Gruppe
    Pfeil 2.5.1 Kontrollkästchen
    Pfeil 2.5.2 Optionsschaltfläche
    Pfeil 2.5.3 Mehrere Ereignisse in einer Prozedur behandeln
    Pfeil 2.5.4 Mehrere Gruppen von Optionsschaltflächen
    Pfeil 2.5.5 Prozedur ohne Ereignis, Modularisierung
  Pfeil 2.6 Schleifen
    Pfeil 2.6.1 For ... Next
    Pfeil 2.6.2 Do ... Loop
    Pfeil 2.6.3 With
    Pfeil 2.6.4 Übungen
  Pfeil 2.7 Listenfeld und Kombinationsfeld
    Pfeil 2.7.1 Listenfeld
    Pfeil 2.7.2 Listenfeld füllen
    Pfeil 2.7.3 Wichtige Eigenschaften
    Pfeil 2.7.4 Wechsel der Auswahl
    Pfeil 2.7.5 Wichtige Methoden
    Pfeil 2.7.6 Mehrfachauswahl
    Pfeil 2.7.7 Kombinationsfelder


Galileo Computing - Zum Seitenanfang

2.6 Schleifen  Zur nächsten ÜberschriftZur vorigen Überschrift

Schleifen werden in Programmen häufig benötigt. Sie ermöglichen den mehrfachen Durchlauf von Anweisungen. Darin liegt eine besondere Stärke der Programmierung allgemein: die schnelle wiederholte Bearbeitung ähnlicher Vorgänge.

Es gibt die Schleifenstrukturen: Do...Loop, For...Next, For Each... In... und With.

Mithilfe der ersten beiden Strukturen steuert man die Wiederholungen eines Anweisungsblocks (die Anzahl der Schleifendurchläufe). Dabei wird der Wahrheitswert eines Ausdrucks (der Schleifenbedingung) oder der Wert eines numerischen Ausdrucks (Wert des Schleifenzählers) benötigt.

Die Schleife For Each...In... wird meist bei Feldern oder Collections (Auflistungen) eingesetzt. Die Anweisung With dient zur Steuerung einer besonderen Schleife mit nur einem Durchlauf.


Galileo Computing - Zum Seitenanfang

2.6.1 For ... Next  Zur nächsten ÜberschriftZur vorigen Überschrift

Falls die Anzahl der Schleifendurchläufe bekannt oder vor Beginn der Schleife berechenbar ist, sollte man die For... Next-Schleife verwenden. Ihr Aufbau sieht wie folgt aus:

For Zähler = Anfang To Ende [ Step = Schritt ] 
   [ Anweisungen ] 
   [ Exit For ] 
   [ Anweisungen ] 
Next [ Zähler ]

Step

Die Zahlen-Variable Zähler wird zunächst auf den Wert von Anfang gesetzt. Nach jedem Durchlauf wird sie um den Wert von Schritt verändert, also vergrößert oder verkleinert. Falls Step = Schritt nicht angegeben wurde, wird die Variable um 1 vergrößert. Der neue Wert von Zähler wird mit dem Wert von Ende verglichen.

  • Falls die Schrittweite positiv ist und der Wert von Zähler nicht größer als der Wert von Ende ist, wird die Schleife wiederum durchlaufen.
  • Falls die Schrittweite negativ ist und der Wert von Zähler nicht kleiner als der Wert von Ende ist, wird die Schleife ebenfalls wiederum durchlaufen.
  • Falls die Schrittweite positiv ist und der Wert von Zähler größer als der Wert von Ende ist oder falls die Schrittweite negativ ist und der Wert von Zähler kleiner als der Wert von Ende ist, wird die Schleife beendet.

Exit For

Die Anweisung Exit For kann eingesetzt werden, um die Schleife aufgrund einer speziellen Bedingung sofort zu verlassen.

In dem folgenden Programm (p0229) werden durch Aufruf von vier Buttons vier unterschiedliche Schleifen durchlaufen:

Public Class frm0229 
[ ... ] 
   Private Sub cmdSchleife1_Click( ... ) Handles ... 
      Dim i As Integer 
      lblAnzeige.Text = "" 
      For i = 3 To 7 
         lblAnzeige.Text &= i & vbCrLf 
      Next 
   End Sub 
[ ... ] 
End Class

Zur Erläuterung:

  • Als Zählervariable dient i.
  • Die Schleife wird erstmalig mit i = 3 und letztmalig mit i = 7 durchlaufen.
  • Es ist keine Schrittweite angegeben, also wird als Schrittweite 1 genommen.
  • Statt Next hätte man zur größeren Deutlichkeit auch Next i schreiben können.

Das Ergebnis zeigt Abbildung 2.30.

Public Class frm0229 
[ ... ] 
   Private Sub cmdSchleife2_Click( ... ) Handles ... 
      Dim i As Integer 
      lblAnzeige.Text = "" 
      For i = 3 To 11 Step 2 
         lblAnzeige.Text &= i & vbCrLf 
      Next 
   End Sub 
[ ... ] 
End Class

Abbildung 2.30  Erste Schleife

Das Ergebnis zeigt die Abbildung 2.31:

Abbildung 2.31  Zweite Schleife

Public Class frm0229 
[ ... ] 
   Private Sub cmdSchleife3_Click( ... ) Handles ... 
      Dim i As Integer 
      lblAnzeige.Text = "" 
      For i = 7 To 3 Step -1 
         lblAnzeige.Text &= i & vbCrLf 
      Next 
   End Sub 
[ ... ] 
End Class

Das Ergebnis zeigt Abbildung 2.32.

Public Class frm0229 
[ ... ] 
   Private Sub cmdSchleife4_Click( ... ) Handles ... 
      Dim d As Double 
      lblAnzeige.Text = "" 
      For d = 3.5 To 7.5 Step 1.5 
         lblAnzeige.Text &= d & vbCrLf 
      Next 
   End Sub 
[ ... ] 
End Class

Abbildung 2.32  Dritte Schleife

Das Ergebnis sehen Sie in Abbildung 2.33:

Abbildung 2.33  Vierte Schleife


Galileo Computing - Zum Seitenanfang

2.6.2 Do ... Loop  Zur nächsten ÜberschriftZur vorigen Überschrift

Steuerung über Bedingung

Ist die Anzahl der Schleifendurchläufe nicht bekannt bzw. vor Beginn der Schleife nicht berechenbar, so sollte man die Do ... Loop-Schleife verwenden. Es gibt sie in fünf verschiedenen Varianten:

    While

  • Do While...Loop: Prüft die Bedingung zum Weiterlaufen der Schleife am Anfang der Schleife.
  • Do...Loop While: Prüft die Bedingung zum Weiterlaufen der Schleife am Ende der Schleife.

    Until

  • Do Until...Loop: Prüft die Bedingung zum Abbruch der Schleife am Anfang der Schleife.
  • Do...Loop Until: Prüft die Bedingung zum Abbruch der Schleife am Ende der Schleife.
  • Do...Loop: Die Bedingung zum Weiterlaufen oder Abbruch der Schleife wird nicht geprüft, daher ist eine Verzweigung in der Schleife und ein Exit Do zur Beendigung der Schleife notwendig.

Der allgemeine Aufbau sieht wie folgt aus:

Do { While | Until } Bedingung 
   [ Anweisungen ] 
   [ Exit Do ] 
   [ Anweisungen ] 
Loop

oder

Do 
   [ Anweisungen ] 
   [ Exit Do ] 
   [ Anweisungen ] 
Loop { While | Until } Bedingung

Zufallsgenerator

Im folgenden Programm (p0230) werden alle fünf Möglichkeiten genutzt. Es sollen jeweils so lange Zahlen addiert werden, bis die Summe der Zahlen 5 erreicht. Da die Zahlen durch einen Zufallsgenerator erzeugt werden, ist die Anzahl der Schleifendurchläufe nicht vorhersagbar.

Abbildung 2.34  Do…Loop-Schleife

Randomize, Rnd

Der Zufallszahlengenerator wird mithilfe der Funktion Rnd() realisiert. Diese liefert quasizufällige Zahlen zwischen 0 und 1. Der Zufallszahlengenerator muss mithilfe der Prozedur Randomize() vor der Benutzung initialisiert werden, da andernfalls immer die gleichen »Zufallszahlen« geliefert würden. Die Initialisierung wird pro Programmaufruf einmalig beim Laden des Formulars vorgenommen.

Load, MyBase

Dieser Zeitpunkt wird durch das Ereignis Load gekennzeichnet. Man erstellt den Rahmen dieser Ereignisprozedur, indem man einen Doppelklick auf einer freien Stelle des Formulars ausführt. Die zugehörige Ereignisprozedur behandelt das Ereignis MyBase.Load. Mit MyBase kann man auf die Klasse zugreifen, in der man sich befindet; in diesem Fall ist das die Klasse des Formulars frm0230.

Public Class frm0230 
   Private Sub frm0230_Load( ... ) Handles MyBase.Load 
      Randomize() 
   End Sub 
 
   Private Sub cmdSchleife1_Click( ... ) Handles ... 
      Dim Summe As Single 
      lblAnzeige.Text = "" 
      Summe = 0 
      Do While Summe < 5 
         Summe += Rnd() 
         lblAnzeige.Text &= Summe & vbCrLf 
      Loop 
      lblAnzeige.Text &= "Fertig!" 
   End Sub 
 
   Private Sub cmdSchleife2_Click( ... ) Handles ... 
      Dim Summe As Single 
      lblAnzeige.Text = "" 
      Summe = 0 
      Do 
         Summe += Rnd() 
         lblAnzeige.Text &= Summe & vbCrLf 
      Loop While Summe < 5 
      lblAnzeige.Text &= "Fertig!" 
   End Sub 
 
   Private Sub cmdSchleife3_Click( ... ) Handles ... 
      Dim Summe As Single 
      lblAnzeige.Text = "" 
      Summe = 0 
      Do Until Summe >= 5 
         Summe += Rnd() 
         lblAnzeige.Text &= Summe & vbCrLf 
      Loop 
      lblAnzeige.Text &= "Fertig!" 
   End Sub 
 
   Private Sub cmdSchleife4_Click( ... ) Handles ... 
      Dim Summe As Single 
      lblAnzeige.Text = "" 
      Summe = 0 
      Do 
         Summe += Rnd() 
         lblAnzeige.Text &= Summe & vbCrLf 
      Loop Until Summe >= 5 
      lblAnzeige.Text &= "Fertig!" 
   End Sub 
 
   Private Sub cmdSchleife5_Click( ... ) Handles ... 
      Dim Summe As Single 
      lblAnzeige.Text = "" 
      Summe = 0 
      Do 
         Summe += Rnd() 
         lblAnzeige.Text &= Summe & vbCrLf 
         If Summe >= 5 Then Exit Do 
      Loop 
      lblAnzeige.Text &= "Fertig!" 
   End Sub 
End Class

Zur Erläuterung:

Im Folgenden wird nur die erste Ereignisprozedur cmdSchleife1_ Click() erläutert. Die anderen sind vergleichbar aufgebaut, und auf die unterschiedliche Schleifensteuerung wurde bereits weiter oben eingegangen.

  • Der Inhalt des Labels wird von alten Ausgaben gelöscht.

    Summe berechnen

  • Die Variable Summe wird zunächst mit dem Wert 0 initialisiert. Dies ist in Visual Basic eigentlich nicht nötig, gehört aber zum guten Programmierstil, da man auf diese Weise den Wert der Variablen zu Beginn der Schleife sicherstellen kann.
  • Zu Beginn der Schleife wird geprüft, ob die Summe der Zahlen kleiner als 5 ist. Trifft dies zu, kann die Schleife durchlaufen werden.
    • Hinweis: Bei einer solchen kopfgesteuerten Schleife (es wird im Kopf der Schleife geprüft) kann es vorkommen, dass sie niemals durchlaufen wird.
  • Der Wert der Variablen Summe wird um eine Zufallszahl zwischen 0 und 1 erhöht.
  • Der Inhalt des Labels wird um den aktuellen Wert der Summe und einen Zeilenumbruch verlängert.
  • Man kommt zum Ende der Schleife, zur Anweisung Loop. Sie führt dazu, dass das Programm wieder zu Beginn der Schleife fortsetzt. Es wird wiederum geprüft, ob die Summe der Zahlen kleiner als 5 ist. Sobald dies nicht mehr zutrifft, läuft das Programm hinter der Anweisung Loop weiter.
  • Es wird die Ausgabe »Fertig!« erzeugt.

Galileo Computing - Zum Seitenanfang

2.6.3 With  Zur nächsten ÜberschriftZur vorigen Überschrift

Mithilfe von With führt man eine Reihe von Anweisungen für ein einzelnes Objekt durch. Dabei wird der einmal erstellte Bezug zum Objekt mehrfach verwendet. Bei einem längeren Objektnamen ist dies sehr nützlich und übersichtlich. Der Aufbau sieht wie folgt aus:

With Objekt 
   [ Anweisungen ] 
End With

Ein Beispiel (p0231):

Public Class frm0231 
   Private Sub cmdAnzeige_Click( ... ) Handles ... 
      With lblAnzeige 
         .BorderStyle = BorderStyle.Fixed3D 
         .BackColor = Color.Yellow 
         .Text = "Test" 
         .Location = New Point(50, 100) 
      End With 
   End Sub 
End Class

Zur Erläuterung:

  • Die Eigenschaften des Labels lblAnzeige werden mithilfe von With geändert.
  • Die Eigenschaften Rahmenstil, Hintergrundfarbe, Textinhalt und Position werden nacheinander gesetzt. Dabei muss zu Beginn der Anweisung jeweils nur ein Punkt angegeben werden. Da das Programm sich innerhalb des With-Blocks befindet, ist es klar, auf welches Objekt sich die Änderungen beziehen.

Galileo Computing - Zum Seitenanfang

2.6.4 Übungen  topZur vorigen Überschrift

Anhand einer Reihe von Übungsaufgaben zu Schleifen (und Verzweigungen) werden im Folgenden einige typische Probleme der Programmierung in Visual Basic trainiert. Der visuelle Teil der Lösung enthält in der Regel nur ein einfaches Textfeld zur Eingabe, einen oder zwei Buttons zum Durchführen der Aufgabe und ein einfaches Label zur Ausgabe.

Übung p0232:

For-Schleife: Schreiben Sie ein Programm mit einer einfachen Schleife, das nacheinander die folgenden Zahlen ausgibt: 35, 32.5, 30, 27.5, 25, 22.5, 20.

Übung p0233:

For-Schleife: Erweitern Sie die vorherige Aufgabe. Am Ende der Zeile sollen Summe und Mittelwert aller Zahlen angezeigt werden.

Abbildung 2.35  Übung p0232 bzw. p0233

Übung p0234:

Do…Loop-Schleife: Schreiben Sie ein Programm, mit dessen Hilfe eine eingegebene Zahl wiederholt halbiert und ausgegeben wird. Das Programm soll beendet werden, wenn das Ergebnis der Halbierung kleiner als 0,001 ist.

Abbildung 2.36  Übung p0234

Übung p0235:

IfElse-Schleife: Schreiben Sie ein Programm, mit dem das Spiel »Zahlenraten« gespielt werden kann: Per Zufallsgenerator wird eine Zahl zwischen 1 und 100 erzeugt, aber nicht angezeigt. Der Benutzer soll so lange Zahlen eingeben, bis er die Zahl erraten hat. Als Hilfestellung soll jedes Mal ausgegeben werden, ob die eingegebene Zahl größer oder kleiner als die zu ratende Zahl ist.

Abbildung 2.37  Übung p0235

Übung p0236:

For-Schleife, IfElse oder Select Case: Erweitern Sie das Programm aus Übung p0222. Schreiben Sie ein Programm, das zu einer Reihe von Gehältern u. a. den Steuerbetrag berechnet und ausgibt. In der folgenden Tabelle sind die Steuersätze angegeben.


Gehalt Steuersatz

bis einschl. 12.000 €

12 %

von 12.000 bis einschl. 20.000 €

15 %

von 20.000 bis einschl. 30.000 €

20 %

über 30.000 €

25 %


Es sollen für jedes Gehalt von 5.000 € bis 35.000 € in Schritten von 3.000 € folgende vier Werte ausgegeben werden: Gehalt, Steuersatz, Steuerbetrag, Gehalt abzüglich Steuerbetrag. Jedes Gehalt soll mit den zugehörigen Werten in einer eigenen Zeile ausgegeben werden.

Abbildung 2.38  Übung p0236



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de