vb.net anweisungen in abhängigkeit von kriterien … · struktogramme werden auch als...
TRANSCRIPT
VB.NET
Anweisungen in Abhängigkeit von Kriterien ausführen
Schleifen zur Wiederholung von Anweisungen
Arrays zur Speicherung von vielen Elementen gleichen Typs
Exception, um Fehler abzufangen
Einführung in VB 19.02.09Seite 2
Anweisung ... bestehen aus VB-Schlüsselwörtern sowie aus Operatoren und
Operanden. ... beschreiben Aktionen, die der Computer ausführen soll. ... können in Abhängigkeit einer Bedingungen durchlaufen werden. ... können unter bestimmten Bedingungen wiederholt werden.
Einführung in VB 19.02.09Seite 3
Algorithmus Genau definierte Verarbeitungsvorschrift zur Lösung einer Aufgabe. Eine Folge von Arbeitsschritten zur Lösung eines Problems. Endliche Folge von Anweisungen, die nacheinander ausgeführt werden. Beispiele aus dem täglichen Leben:
Kochrezepte Steuerprogramme für technische Geräte (Waschmaschinen etc.)
Einführung in VB 19.02.09Seite 4
Beispiel: Bedienung einer Waschmaschine Tür der Waschmaschine öffnen. Max. 5 kg Wäsche (einer Farbe ) einfüllen. Tür der Waschmaschine schließen. Waschmittel passend zur Farbe der Wäsche in die kleine Schublade für
den Hauptwaschgang füllen. Wasserzulauf öffnen. Waschprogramm wählen. Starttaste drücken. Waschvorgang abwarten. Nach Programm-Ende Maschine abstellen. Wasserzulauf schließen. Tür öffnen und Wäsche entnehmen.
Einführung in VB 19.02.09Seite 5
Eigenschaften eines Algorithmus Ein Algorithmus benötigt endlich viele Arbeitsschritte. Ein Algorithmus ist beschreibbar. Jeder Arbeitsschritt ist ausführbar. Ein Algorithmus liefert unter identischen Startbedingungen immer
das gleiche Endergebnis. Der Ablauf des Verfahrens ist eindeutig definiert.
Einführung in VB 19.02.09Seite 6
Beispiel Aufgabe: Suche ein bestimmtes Wort in einen Text. Eingangsdaten:
Variable text: Zeichenfolge (String), in der ein bestimmtes Wort gesucht werden soll.
Variable wort: Zeichenfolge, die gesucht wird. Ausgangsdaten:
Ist das Wort in der Zeichenfolge text vorhanden?
Einführung in VB 19.02.09Seite 7
Grafische Darstellung .. in einem Flussdiagram:
Ein Flussdiagramm ist ein Ablaufdiagramm für Computerprogramme. Die benutzten Symbole sind in der DIN 66001 genormt.
... in einem Struktogramm: Struktogramme werden auch als Nassi-Shneidermann-Diagramme
bezeichnet. Die benutzten Symbole sind in der DIN 66261 genormt. Struktogramm-Editoren sind unter
http://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm zu finden.
Einführung in VB 19.02.09Seite 8
Flussdiagramm: Wort-Suche
Text und Suchwort eingeben
Positionzeiger = 1. Zeichen
Suchwortlänge ermitteln
Hole Suchwortlänge Zeichen
Einführung in VB 19.02.09Seite 9
Flussdiagramm: Wort-Suche
Suchwort vorhanden
Hole Suchwortlänge Zeichen
Suchwort = Temp
Setze Positionzeiger + Länge Suchwort
Positionzeiger >= Länge Text
nein
nein
Einführung in VB 19.02.09Seite 10
Stukturgramm: Wort-SucheText eingebenZu suchendes Wort eingeben
Positionszeiger = 1. Zeichen
Suchwortlänge ermitteln
Hole Suchwortlänge Zeichen
Suchwort = Temp
Suchwort gefundenbreak
Positionzeiger + Länge SuchwortPositionzeiger >= Länge Text
break
nein
neinja
ja
Einführung in VB 19.02.09Seite 11
Vorteile von Struktogrammen Struktogramme erzwingen einen sequentiellen Programmablauf ohne
Sprünge. Im Allgemeinen führt die Verwendung von Struktogrammen dazu, dass
Programme besser strukturiert sind, als bei der Verwendung von Programmablaufplänen.
Verwenden Sie vorzugsweise (zumindest während Sie ihre erste Programmiersprache lernen) Struktogramme.
Bevor Sie mit der Codierung beginnen, machen Sie einen Programmentwurf.
Einführung in VB 19.02.09Seite 12
Kontrollanweisungen Mit Hilfe von Kontrollstrukturen kann der Programmablauf beeinflusst
werden. In Abhängigkeit vom Wert einer oder mehrerer Variablen wird der
Programmablauf gesteuert. Es gibt folgende Möglichkeiten:
Auswahlanweisungen: In Abhängigkeit eines Kriteriums werden Anweisungen ausgeführt oder nicht.
Schleifen (Iterationsanweisungen): Anweisungen werden wiederholt ausgeführt.
Einführung in VB 19.02.09Seite 13
Auswahlanweisungen if – else – Anweisungen. In Abhängigkeit einer Bedingungen werden
Anweisungen ausgeführt oder nicht. select case – Anweisungen. Der Wert eines Ausdrucks wird
ausgewertet. In Abhängigkeit des Wertes wird zu den verschiedenen Fällen verzweigt.
Einführung in VB 19.02.09Seite 14
Bedingte Anweisung .. oder Selektionsanweisungen. Wenn – Dann – Anweisung. ... beginnen mit dem If (wenn) und enden mit
dem End If. Zwischen diesen beiden Schlüsselwörtern
stehen Anweisungen. Diese Anweisungen werden nur ausgeführt,
wenn die Bedingung erfüllt ist. Die Bedingung folgt dem If und endet mit
Then (Dann). Falls die Bedingung nicht erfüllt ist, werden
die Anweisungen nach dem End If ausgeführt.
If (bedingung) Thenanweisung1;anweisung2;
End If
anweisung;
Bedingung
Anweisung 1
ja
nein
Einführung in VB 19.02.09Seite 15
Beispiel: if-Anweisung
Dim bestellpreis As Double Dim rabatt As Double Dim preis As Double = 0.99 Dim rabattpreis As Double Dim bestellmenge As Integer = 10
bestellPreis = (bestellmenge * preis) rabatt = 0
If (bestellmenge > 100) Then rabatt = 0.03 rabattPreis = bestellPreis * rabatt bestellPreis = bestellPreis - rabattPreis End If
Einführung in VB 19.02.09Seite 16
Bedingungen ... sind Ausdrücke, die einen boolschen Wert zurückliefern. Ein
boolscher Wert kennt nur zwei Zustände: true (wahr) oder false (falsch). ... vergleichen mit Hilfe von bestimmten Operatoren zwei Werte. Texte werden Zeichen für Zeichen mit Hilfe der ASCII-Codierung
verglichen. ... sind zum Beispiel:
Wenn die Bestellmenge eine gewisse Höchstmenge überschreitet... Wenn der Kontostand dem Dispo entspricht... Wenn die Strecke A doppelt so lang ist wie Strecke B... Wenn die Warenmenge eine Mindestmenge unterschreitet...
Einführung in VB ۱۹.۰۲.۰۹Seite ۱۷
Vergleichsoperatoren
Operator Beschreibung Beispiel Ergebnis= gleich 3 = 2 false
<> ungleich 3 <> 2 true
< kleiner als 3 < 2 false
<= kleiner gleich 3 <= 2 false
> größer 3 > 2 true
>= größer gleich 3 >= 2 true
Einführung in VB ۱۹.۰۲.۰۹Seite ۱۸
Logischen Operatoren nutzen
Operator Beschreibung Beispiel (wert = 5) ErgebnisAND UND (wert > 0) AND (wert < 10) trueOR ODER (wert > 0) OR (wert < 10) trueNOT NICHT NOT(wert > 0) false
Bedingung Möglichkeitena b NOT(a) a AND b a OR b
false false true false falsefalse true true false truefalse true true false truetrue false false false true
Einführung in VB ۱۹.۰۲.۰۹Seite ۱۹
Beispiel: Verknüpfung mit UND
Dim bestellpreis As Double Dim rabatt As Double Dim preis As Double = 0.99 Dim rabattpreis As Double Dim bestellmenge As Integer = 10
bestellPreis = (bestellmenge * preis) rabatt = 0
If (bestellmenge > 100) And (bestellmenge < 500) Then rabatt = 0.03 rabattpreis = bestellpreis * rabatt bestellpreis = bestellpreis - rabattpreis End If
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۰
Beispiel: Verknüpfung mit UND Also
Dim bestellpreis As Double Dim rabatt As Double Dim preis As Double = 0.99 Dim rabattpreis As Double Dim bestellmenge As Integer = 10
bestellPreis = (bestellmenge * preis) rabatt = 0
If (bestellmenge > 100) AndAlso (bestellmenge < 500) Then rabatt = 0.03 rabattpreis = bestellpreis * rabatt bestellpreis = bestellpreis - rabattpreis End If
Wenn der linke Ausdruck wahr ist,
wird der rechte Ausdruck
ausgewertet. Andernfalls nicht.
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۱
Beispiel: Verknüpfung mit ODER
Dim zahl As Double Dim mass As Char Dim umrechnung As Double
mass = "g"
If ((mass = "m") Or (mass = "g")) Then
umrechnung = zahl / 1000 End If
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۲
Beispiel: Verknüpfung mit ODER
Dim zahl As Double Dim mass As Char Dim umrechnung As Double
mass = "g"
If ((mass = "m") OrElse (mass = "g")) Then
umrechnung = zahl / 1000 End If
Der rechte Ausdruck wird nur ausgewertet, wenn der linke Ausdruck
falsch ist.
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۳
Beispiel: Nicht (Not) nutzen
Dim zahlA As Integer = 5 Dim zahlB As Integer = 6 Dim result As Integer
If Not (zahlB >= 0) Then Console.WriteLine("Division durch Null nicht erlaubt") Else result = zahlA \ zahlB End If
If (zahlB <> 0) Then result = zahlA \ zahlB Else Console.WriteLine("Division durch Null nicht erlaubt") End If
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۴
Hinweise
Beispiel: (var1 != var2) && (var2 > 10) Zuerst wird die linke Bedingung (var1 != var2) ausgewertet. Anschließend wird die rechte Bedingung (var2 > 10) ausgewertet.
Ein Ausdruck wird immer von links nach rechts ausgewertet! Sie können die Operatoren beliebig oft in beliebiger Mischung in einer
Bedingung nutzen. Um die Lesbarkeit zu erhöhen, sollten die verschiedenen Elemente der
Bedingung mit runden Klammern zusammengefasst werden. Falls verschiedene Operatoren gemischt werden, muss die Bindung der
Operatoren beachtet werden.
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۵
Rangfolge der Operatoren
( )^-* /\
Mod+&= <> < > <= => Like
NOTANDOR
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۶
if-else-Anweisung Wenn – Dann – Andernfalls – Anweisung. Falls die Bedingung nicht erfüllt wird, werden
die Anweisungen im Else-Zweig ausgeführt. Der Else-Zweig
... kann nie ohne eine If-Anweisung existieren.
... hat die gleiche Einrücktiefe wie die dazugehörige If-Anweisung.
... benötigt keine Bedingung. ... beschreibt den Standardfall. ... fängt alle nicht behandelten Fälle ab.
If (bedingung) Thenanweisung1;anweisung2;
Elseanweisung1;anweisung2;
End If
anweisung;
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۷
Aufbau der bedingten Anweisungen
Bedingung
Anweisungen Anweisungen
Bedingung erfüllt
else-Zweig
Anweisungen
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۸
Beispiel: else-Anweisung
Dim bestellPreis As Double Dim bestellmenge As Integer = 10 Dim preis As Double = 0.88 Dim rabatt As Double Dim rabattpreis As Double
bestellPreis = (bestellmenge * preis)
If (bestellmenge > 100) Then rabatt = 0.03 rabattPreis = bestellPreis * rabatt bestellPreis = bestellPreis - rabattpreis
Else rabatt = 0.0 End If
Einführung in VB ۱۹.۰۲.۰۹Seite ۲۹
Verschachtelte Anweisungen Dim zahlA As Integer = 4 Dim zahlB As Integer = 3 Dim result As Integer
result = zahlA Mod zahlB
If (result = 0) Then
If (zahlA = zahlB) Then Console.WriteLine("Die Zahlen sind gleich.") Else Console.WriteLine("Division ohne Rest") End If
Else Console.WriteLine("Rest der Division: ", result) End If
Einführung in VB ۱۹.۰۲.۰۹Seite ۳۰
Hinweise Jede Ebene einer verschachtelten if-Anweisung wird mit Hilfe des
Tabulators eingerückt. Um die Übersicht zu behalten, sollten Sie nie mehr als 5 Ebenen tief
verschachteln. Vermeiden Sie unterschiedliche Datentypen auf beiden Seiten eines
Vergleichsoperators. Bei Dezimalzahlen sollte ein Test auf Gleichheit vermieden werden.
Einführung in VB ۱۹.۰۲.۰۹Seite ۳۱
Mehrstufige if-else-Anweisungen
Dim masse As Char Dim einheit As String
If (masse = "m") Then einheit = "Meter"
ElseIf (masse = "cm") Then einheit = "Zentimeter"
ElseIf (masse = "mm") Then einheit = "Milimeter"
Else einheit = "Nicht bekannt" End If
Einführung in VB ۱۹.۰۲.۰۹Seite ۳۲
Select Case-Anweisungen
Select Case masseCase "m"
einheit = "Meter"Case "cm"
einheit = "Zentimeter"Case "mm"
einheit = "Milimeter"Case Else
einheit = "Nicht bekannt"End Select
Einführung in VB 19.02.09Seite 33
Erläuterung
Select Case variableCase "fall1"
anweisung11Case "fall2"
anweisung21Case Else
anweisungEnd Select
Select Case leitet eine Fallunterscheidung ein.
Dem Schlüsselwort Select Case folgt eine Variable, die in dem Block untersucht wird.
Case leitet den einzelnen Fall ein. Entspricht der zu überprüfende Variablenwert dem angegebenen Wert, werden alle zu dem Fall gehörenden Anweisungen ausgeführt.
Eine Select Case-Anweisung überprüft standardmäßig einen Ausdruck auf Gleichheit!
Einführung in VB 19.02.09Seite 34
Standardfall Case Else
... beschreibt den Standardfall. ... wird genutzt, wenn alle anderen
beschriebenen Fälle nicht zutreffen. ... muss nicht genutzt werden.
Select Case variableCase "fall1"
anweisung11Case "fall2"
anweisung21Case Else
anweisungEnd Select
Einführung in VB 19.02.09Seite 35
Aufzählungen nutzen
Dim einkauf As String = "Bananen" Dim kategorie As String
Select Case einkauf
Case "Bananen", "Äpfel" kategorie = "Obst" Case "Möhre", "Kohlrabi" kategorie = "Gemüse" Case "Basilikum", "Schnittlauch" kategorie = "Kräuter"
Case Else kategorie = "" End Select
Der Wert der Variablen muss
einem Element aus der Auflistung
entsprechen. Die Auflistung kann aus beliebig viele Werte
bestehen.
Einführung in VB 19.02.09Seite 36
Unter- und Obergrenzen nutzen
Dim bestellsumme As Double = 100.5 Dim rabatt As Double
Select Case bestellsumme
Case 500 To 1000 rabatt = 0.2 Case 1000 To 1500 rabatt = 0.3 Case Is > 1500 rabatt = 0.4
Case Else rabatt = 0 End Select
Untergrenze To Obergrenze. Der
Wert der Variablen muss innerhalb der
Grenzen liegen.
Einführung in VB 19.02.09Seite 37
Vergleichsoperatoren nutzen
Dim bestellsumme As Double = 100.5 Dim rabatt As Double
Select Case bestellsumme
Case Is > 500, Is <= 1000 rabatt = 0.2 Case Is > 1000, Is <= 1500 rabatt = 0.3 Case Is > 1500 rabatt = 0.4
Case Else rabatt = 0 End Select
Is ist ein Synonym für die zu
untersuchenden Variable. Falls nicht
auf Gleichheit getestet wird, muss das
Schlüsselwort Is genutzt werden.
Vergleiche können auch durch Kommata getrennt aufgelistet
werden. Das Kommata trennt
mehrere Möglichkeiten.
Einführung in VB 19.02.09Seite 38
Vergleichsoperatoren nutzen
Dim bestellsumme As Double = 100.5 Dim rabatt As Double
Select Case bestellsumme
Case Is > 500 And bestellsumme <= 1000 rabatt = 0.2 Case Is > 1000, Is <= 1500 rabatt = 0.3 Case Is > 1500 rabatt = 0.4
Case Else rabatt = 0 End Select
Bei einer Verknüpfung mit AND muss die zu
vergleichende Variable wiederholt
werden.
Einführung in VB 19.02.09Seite 39
Schleifen (Iterationsanweisungen) ... führen Anweisungen mehrfach aus. Die Anzahl der Wiederholungen
muss nicht vorher festgelegt werden. ... können endlos laufen. Schleifen können vom Programmierer vorzeitig abgebrochen werden. Schleifen können verschachtelt werden.
Einführung in VB 19.02.09Seite 40
Schleifen-Typen Zählschleifen
Die Anzahl der Durchläufe ist bekannt. Mit Hilfe einer Variablen werden die Schleifendurchläufe gezählt und
nach einer bestimmten Anzahl abgebrochen. Kopfgesteuerte und fußgesteuerte Schleifen
... werden in Abhängigkeit einer Bedingung durchlaufen. Die Anzahl der Durchläufe ist nicht bekannt ... werden mit Hilfe einer Bedingung gesteuert, die im Kopf oder Fuß
der Schleife steht. Falls die Bedingung erfüllt ist, werden die Anweisungen
abgearbeitet. Eine fußgesteuerte Schleife wird unabhängig von der Bedingung
mindestens einmal durchlaufen.
Einführung in VB 19.02.09Seite 41
Zählschleife
Dim nMin As Integer = 1Dim nMax As Integer = 10Dim nCount As Integer = 0Dim nSumme As Integer = 0
For nCount = nMin To nMax nSumme = nSumme + nCount Console.WriteLine("+ " & nCount & "= " & nSumme)
Next nCount
Einführung in VB 19.02.09Seite 42
Schleifenaufbau Der Schleifenkopf einer Zählschleife beginnt dem Schlüsselwort For. Im Schleifenkopf wird
... der Zähler initialisiert (nCount = nMin). Die Zählvariable kann von einem beliebigen Typ sein.
... die Anzahl der Durchläufe durch die Angabe einer Unter- und Obergrenze festgelegt (nMin To nMax).
Die Schleife endet mit Next nCount. Im Schleifenfuß wird der Wert des Zähler um eins erhöht.
Einführung in VB 19.02.09Seite 43
Arbeitsweise
Bedingung
Initialisiere Zähler
Anweisungen
Zählvariable aktualisieren
ja
nein
Einführung in VB 19.02.09Seite 44
Schrittweite verändern
Dim nMin As Integer = 1Dim nMax As Integer = 10Dim nCount As Integer = 0Dim nSumme As Integer = 0
For nCount = nMin To nMax Step 2 nSumme = nSumme + nCount Console.WriteLine("+ " & nCount & "= " & nSumme)Next nCount
Einführung in VB 19.02.09Seite 45
Negative Werte nutzen
Dim nMin As Integer = 10Dim nMax As Integer = 5Dim nCount As Integer = 0Dim nSumme As Single = 0
For nCount = nMin To nMax Step -2 nSumme = nSumme + nCount Console.WriteLine("+ " & nCount & "= " & nSumme)Next nCount
Die Obergrenze muss kleiner als die
Untergrenze sein. Andernfalls wird die
Schleife nicht durchlaufen.
Einführung in VB 19.02.09Seite 46
Dezimalwerte nutzen
Dim nMin As Integer = 10Dim nMax As Integer = 5Dim nCount As Single = 0.5Dim nErgebnis As Single = 0
For nCount = nMin To nMax Step -0.5 nErgebnis = nCount Mod 2 Console.WriteLine(nCount & ": Rest = " & nErgebnis)Next nCount
Der Zähler und Schrittweite müssen den
gleichen Datentyp besitzen. Bei
unterschiedlichen Datentypen wird die
Schleife nicht durchlaufen.
Einführung in VB 19.02.09Seite 47
Schleifen verschachtelnDim wert As Integer Dim faktor As DoubleDim ergebnis As Double
For wert = 1 To 5 ergebnis = 0
For faktor = 0.5 To 2 Step 0.5ergebnis = faktor * wert If (faktor > 1.5) AND (wert = 2) Then
Exit ForEnd If
Next faktor
Console.WriteLine(ergebnis) Next wert
Die innere Schleife wird vollständig abgearbeitet. Anschließend wird der
nächste Schleifendurchlauf der äußeren Schleife
gestartet.
Einführung in VB 19.02.09Seite 48
Do... Loop -SchleifenDo
AnweisungLoop ... beginnen mit Do und endet mit Loop. Die Schleife hat keine Bedingung. Die Schleife läuft endlos.
Einführung in VB 19.02.09Seite 49
Fußgesteuerte Schleifen Die Abbruchbedingung steht im Fuß der Schleife. Die Anweisungen der Schleife werden einmal abgearbeitet.
Anschließend wird die Bedingung überprüft. Bedingung mit Hilfe von Until (bis ):
Die Schleife läuft solange bis die Bedingung erfüllt ist. Sobald die Bedingung erfüllt ist, wird die Schleife abgebrochen.
Bedingung mit Hilfe von While (während, so lange): Die Schleife läuft solange wie die Bedingung erfüllt ist. Sobald die Bedingung nicht erfüllt ist, wird die Schleife abgebrochen.
Einführung in VB 19.02.09Seite 50
Do-Loop UntilDim count As Integer = 0
Do count = count + 1Console.WriteLine(count)
Loop Until count > 5
count = 0 + 1count = 1 + 1count = 2 + 1count = 3 + 1count = 4 + 1count = 5 + 1
⇒ Abbruchcount + 1
wiederhole bis count > 5
Console.WriteLine
Einführung in VB 19.02.09Seite 51
Do-Loop WhileDim count As Integer = 0
Do count = count + 1Console.WriteLine(count)
Loop While count > 5
count = 0 + 1⇒ Abbruch
count + 1
wiederhole so lange count > 5
Console.WriteLine
Einführung in VB 19.02.09Seite 52
Kopfgesteuerte Schleifen Die Abbruchbedingung steht im Kopf der Schleife. Die Bedingung wird überprüft. Falls die Bedingung wahr ist, werden die
dazugehörigen Anweisungen ausgeführt. Bedingung mit Hilfe von Until (bis ):
Die Schleife läuft solange bis die Bedingung erfüllt ist. Sobald die Bedingung erfüllt ist, wird die Schleife abgebrochen.
Bedingung mit Hilfe von While (während, so lange): Die Schleife läuft solange wie die Bedingung erfüllt ist. Sobald die Bedingung nicht erfüllt ist, wird die Schleife abgebrochen.
Einführung in VB 19.02.09Seite 53
Do-Loop UntilDim count As Integer = 0
Do Until count > 5count = count + 1Console.WriteLine(count)
Loop
count = 0 + 1count = 1 + 1count = 2 + 1count = 3 + 1count = 4 + 1count = 5 + 1
⇒ Abbruch
count + 1
wiederhole bis count > 5
Console.WriteLine
Einführung in VB 19.02.09Seite 54
Do-Loop UntilDim count As Integer = 0
Do While count > 5count = count + 1Console.WriteLine(count)
Loop ⇒ Abbruch
count + 1
wiederhole solange count > 5
Console.WriteLine
Einführung in VB 19.02.09Seite 55
Schleife vorzeitig abbrechen Exit For verlässt eine For-Schleife und führt alle nachfolgenden
Anweisungen aus. Exit Do verlässt eine Do-Loop-Schleife und führt alle nachfolgenden
Anweisungen aus.
Einführung in VB 19.02.09Seite 56
Array (Feld) ... sind zusammengesetzte Datentypen. ... bestehen aus mehreren Elementen, die vom gleichen Datentyp sind. Eine Gruppe von Variablen wird gemeinsam verwaltet. Die Variablen
innerhalb der Gruppe haben den gleichen Datentyp. ... sind aufeinander gestapelte Behälter gleicher Größe, aber
unterschiedlichen Inhalts. ... können bis zu 32 Dimensionen besitzen. In Feldern werden zum Beispiel
... die Namen der Monate eines Jahres gespeichert. ... Temperaturwerte eines Jahres gespeichert. ... möglichen Größen von Schrauben abgelegt.
Einführung in VB 19.02.09Seite 57
Graphische Darstellung
1
Dim zahl As Integer = 1
1
Dim zahl() As Integer = {1, 2, 3, 4, 5}
2
3
4
5
[0]
[1]
[2]
[3]
[4]
Einführung in VB 19.02.09Seite 58
Variablen deklarieren
Dim faktor(4) As Single
Wer hat Zugriffauf die Variable? Nur der Block, in
dem sie deklariert ist,hat Zugriff. Der Name der
Variablen istfrei wählbar. In den
runden Klammern wird höchste Index angegeben.
Der Datentyp legt die Art der
zu speicherndenWerte und deren Speicherbedarf
fest.
Einführung in VB 19.02.09Seite 59
Arrays deklarieren und initialisierenDim zahlen() As Integer = {1, 2, 3, 4, 5} Die runden Klammern bleiben leer. Die Anzahl der Elemente wird durch die Initialisierung bestimmt. Dem Array wird mit Hilfe des Gleichheitszeichens eine Liste von Werten
zugewiesen. Die Liste wird mit Hilfe der geschweiften Klammern begrenzt. Die
Elemente der Liste werden durch Kommata getrennt.
Einführung in VB 19.02.09Seite 60
Indizes eines Array-Elements zahl(0) bezeichnet das erste Element in einem Array. zahl(3) bezeichnet das vierte Element in einem Array. zahl(anzahl – 1) bezeichnet das letzte Element in einem Array. Der Index folgt dem Variablennamen in runden Klammern ohne
Leerzeichen. Der Index wird bei der Deklaration oder durch die Initialisierung
automatisch festgelegt. Ein Index außerhalb des Bereichs liefert den Fehler Index Out Of Range.
Einführung in VB 19.02.09Seite 61
Zugriff mit Hilfe einer for-Schleife
Dim nMin As Integer = 0 Dim nMax As Integer = 5 Dim nCount As Integer
Dim nFeld(5) As Integer
For nCount = nMin To nMax
nFeld(nCount) = nCount * 2
Next nCount
Einführung in VB 19.02.09Seite 62
Zugriff mit Hilfe einer for Each-Schleife
Dim nFeld() As Integer = {1, 2, 3, 4, 5} Dim nElement As Integer
For Each nElement In nFeld
Console.WriteLine(nElement)
Next nElement
Es werden alle Elemente nach und nach durchlaufen.Der Durchlauf beginnt immer
beim ersten Element.
Einführung in VB 19.02.09Seite 63
Elemente kopieren
1
2
3
4
5
[0]
[1]
[2]
[3]
[4]
Dim nZahl(4) As Integer
0
0
0
0
0
[0]
[1]
[2]
[3]
[4]
Dim nFeld(4) As Integer
nFeld(3) = nZahl(3)
4
Einführung in VB 19.02.09Seite 64
Array kopieren
1
2
3
4
5
[0]
[1]
[2]
[3]
[4]
Dim nZahl(4) As Integer
Dim nFeld(4) As Integer
nFeld = nZahl
0
0
0
0
0
[0]
[1]
[2]
[3]
[4]
Einführung in VB 19.02.09Seite 65
Array kopieren
1
2
3
4
5
[0]
[1]
[2]
[3]
[4]
Dim nZahl(4) As Integer
Dim nFeld(4) As Integer
nFeld = nZahlClone
0
0
0
0
0
[0]
[1]
[2]
[3]
[4]
1
2
3
4
5
Einführung in VB 19.02.09Seite 66
Kopieren und an einer bestimmten Position einfügen
1
2
3
4
5
[0]
[1]
[2]
[3]
[4]
Dim nZahl(4) As Integer
Dim nFeld(5) As Integer
nZahl.CopyTo(nFeld, 1)
0
0
0
0
0
[0]
[1]
[2]
[3]
[4]
1
2
3
4
5
0[5]
1
2
3
4
5
Einführung in VB 19.02.09Seite 67
Anzahl der Elemente
Dim nMin As Integer = 0 Dim nCount As Integer Dim nFeld(5) As Integer Dim nAnzahlFeld As Integer
nAnzahlFeld = nFeld.Length
For nCount = nMin To nAnzahlFeld - 1
nFeld(nCount) = nCount * 2
Next nCount
Einführung in VB 19.02.09Seite 68
Maximalen Index ermitteln
Dim nMin As Integer = 0 Dim nCount As Integer Dim nFeld(5) As Integer
' GetUpperBound(Dimension) For nCount = nMin To nFeld.GetUpperBound(0)
nFeld(nCount) = nCount * 2
Next nCount
Einführung in VB 19.02.09Seite 69
Array sortieren
Dim nMin As Integer = 0 Dim nCount As Integer Dim nFeld(5) As Integer
For nCount = = nMin To nFeld.GetUpperBound(0)
nFeld(nCount) = nCount * 2
Next nCount
'Objekt Array stellte Methoden für die Bearbeitung zur VerfügungArray.Sort(nFeld)
Einführung in VB 19.02.09Seite 70
Darstellung von Dimensionen
3-Dimension (Matrizen etc.):Ein Quader (Körper) wird durch seine Breite, Länge und Höhe beschrieben.Es werden x-, y- und z-Koordinaten benötigt.
2-Dimension (Tabellen etc.):Ein Rechteck (Fläche) wird durch seine Breite und Länge beschrieben.Es werden x-, und y-Koordinaten benötigt.
1-Dimension:Ein Linie wird durch einen Startpunkt beschrieben und den Abstand von diesem Startpunkt.Es werden unendlich viele Punkte benötigt.
0-Dimension:Ein Punkt beschreibt eine Koordinate.
Einführung in VB 19.02.09Seite 71
Zweidimensionales Array
Dim nMin As Integer = 0 Dim nMax As Integer = 5 Dim nZeile As Integer
Dim nSpalte As Integer Dim nFeld(5, 5) As Integer
For nZeile = nMin To nMax
For nSpalte= nMin To nMax
nFeld(nZeile, nSpalte) = nZeile * nSpalte
Next nSpalte
Next nZeile
Einführung in VB 19.02.09Seite 72
Dynamische Arrays initialisierenDim nFeld() As Single. In den Klammern darf kein maximaler Index angegeben werden. Es kann jeder Datentyp genutzt werden. Die Größe wird dynamisch im Programm je nach Wunsch festgelegt.
Einführung in VB 19.02.09Seite 73
Dynamische Arrays vergrößern oder verkleinernReDim nFeld(10). Der maximale Index wird in den Klammern angegeben. Die Werte der Felder werden automatisch gelöscht. Es wird ein neues Feld mit dem angegebenen maximalen Index erstellt.
In diesem Beispiel hat das Feld 11 Elemente.
ReDim Preserve nFeld(10). Der maximale Index wird in den Klammern angegeben. Falls der angegebene maximale Index größer ist als der maximale
Ursprungsindex, bleiben alle Werte der vorhandenen Felder erhalten. Es werden nur neue Felder ergänzt.
Falls der angegebene maximale Index kleiner ist als der maximale Ursprungsindex, werden Felder gelöscht. Der Inhalt der Felder geht verloren.
Einführung in VB 19.02.09Seite 74
Fehler (Bugs) Syntaxfehler entstehen beim Schreiben des Programmcodes. Logische Fehler treten auf, wenn der Entwickler ein Denkfehler bei der
Umsetzung der Aufgabe in ein Programm macht. Das Programm wird fehlerfrei ausgeführt, aber das Ergebnis ist nicht korrekt.
Laufzeitfehler treten während der Ausführung des Programms auf. Zum Beispiel eine CD, von der Daten gelesen werden sollen, befindet sich nicht im Laufwerk.
Einführung in VB 19.02.09Seite 75
Syntaxfehler Die Syntax einer Programmiersprache ist die Gesamtheit der Regeln für
die Bildung von Anweisungen aus Operatoren und Operanden sowie die Nutzung von Funktionen.
... verhindern die Kompilierung eines Programms. ... sind zum Beispiel:
Tippfehler bei der Eingabe von Variablennamen oder Schlüsselwörtern.
Mischung von numerischen und nicht-numerischen Operatoren. Falsche Parameterübergabe an Funktionen. Syntaxfehler in Schleifen oder bedingten Anweisungen.
Einführung in VB 19.02.09Seite 76
Syntaxfehler vermeiden Öffnen Sie das Menü Extras – Optionen. Voraussetzung: Es werden nicht alle Optionen angezeigt. Öffnen Sie den Ordner Projekte und Projektmappen und den
Unterordner VB-Standard. Stellen Sie für Option Explicit und Option Strict den Wert On ein.
Wechseln Sie in den Ordner Text-Editor Basic und den Unterordner VB-spezifisch. Wählen Sie die Option Vorschläge für Fehlerkorrektur aktivieren aus.
Einführung in VB 19.02.09Seite 77
Anzeige von Syntaxfehler Syntaxfehler werden im Codefenster durch eine Schlangenlinie
gekennzeichnet. Wenn die Maus über den Fehler liegt, wird ein ToolTip zur Erläuterung eingeblendet.
Mit Hilfe von Ansicht – Fehlerliste werden alle Syntaxfehler in einem gesonderten Fenster aufgelistet.
Einführung in VB 19.02.09Seite 78
Laufzeitfehler ... sind Bugs, die nach dem Start eines Programms auftreten können. ... betreffen immer die Programmlogik. ... können Programme zu einem unerwünschten Verhalten oder einen
Programmabsturz zwingen. ... entstehen, wenn Ausdrücke oder Anweisungen vom Programm nicht
korrekt ausgewertet werden.
Einführung in VB 19.02.09Seite 79
Beispiele Division durch Null. Überlauf (zu großer oder zu kleiner Wert für den angegebenen
Datentyp). Falsche Abbruchbedingung für eine Schleife. Verwendung von ungültigen Operatoren. Ein- und Ausgabefehler. Tippfehler wie "1o" statt 10.
Einführung in VB 19.02.09Seite 80
Ausnahmen abfangen
Dim nZahl As Byte Dim nErgebnis As Byte
Try nZahl = Console.ReadLine() nErgebnis = nZahl \ 0
Catch ex As DivideByZeroException Console.WriteLine("Division durch Null ist nicht erlaubt")
Catch ex As OverflowException Console.WriteLine(ex.Message)
End Try
Einführung in VB 19.02.09Seite 81
Ablauf Es wird kein Fehler ausgelöst.
Es werden alle Anweisungen im try-Block ausgeführt. Anschließend werden alle Anweisungen, die dem try-Block folgen,
ausgeführt. Es wird eine Exception (Ausnahme) ausgelöst.
Alle nachfolgenden Anweisungen im try-Block werden nicht ausgeführt.
Es werden die catch-Anweisungen durchlaufen. Falls eine passende Ausnahme vorhanden ist, werden die dazugehörigen Anweisungen ausgeführt. Falls keine passende Ausnahme vorhanden ist, wird der Fehler an die nächst höhere Ebene weitergereicht.
Einführung in VB 19.02.09Seite 82
Exception-Klasse System.SystemException
ArithmeticException (Ausnahmen für arithmetische Operationen) DivideByZeroException (Divsion durch Null) OverflowException (Überlauf)
IndexOutOfRangeException (Index eines Array außerhalb der Höchstgrenze)
InvalidCastException (Fehler bei der Typ-Umwandlung) FormatException (Typen unverträglich)
... und viele mehr.
Einführung in VB 19.02.09Seite 83
... aufräumen
Dim filename As String = "test.txt" Dim objReader As System.IO.StreamReader Dim strText As String
Try objReader = New System.IO.StreamReader(filename) strText = objReader.ReadToEnd ' Datei einlesen objReader.Close()
Catch ex As IO.FileNotFoundException Console.WriteLine("Datei nicht vorhanden") Catch ex As Exception Console.WriteLine(ex.Message)
Finally objReader = Nothing End Try
Einführung in VB 19.02.09Seite 84
Logische Fehler ... entstehen
... beim Design eines Programms oder ... bei der Definition von Anforderungen an das Programm.
... können ... durch fehlendes Fachwissen oder ... Missverständnissen zwischen Nutzern und Entwicklern entstehen.
werden hervorgerufen durch ... eine falsche Anzahl von Schleifendurchläufen. ... durch das Erzeugen von Endlosschleifen. ... falsch formulierte Bedingungen in Anweisungen und Schleifen. ... eine falsche oder nicht vorhandene Klammerung von komplexen
Ausdrücken. ... falsch initialisierte Variablen.
Einführung in VB 19.02.09Seite 85
Einzelschritt Das Programm wird Zeile für Zeile durchlaufen. Die momentan auszuführende Zeile wird farbig unterlegt und mit einem
Pfeil am Rand gekennzeichnet. Der Pfeil kann mit Hilfe der gedrückt gehaltenen Maustaste verschoben. Das Programm führt ab dort das Programm neu aus.
Legen Sie den Mauszeiger auf einen Bezeichner oder Ausdruck. Der aktuelle Wert wird in einem ToolTip angezeigt.
Einführung in VB 19.02.09Seite 86
Einzelschritt starten Debuggen – Einzelschritt oder <F8>. Jede Zeile muss mit <F8> quittiert werden. Andere Möglichkeit:
Mit Hilfe des linken Icons wird der Einzelschritt-Modus eingeschaltet. Mit Hilfe des mittleren Icons werden alle Einzelschritte ausgeführt.
Aufgerufene Prozeduren oder Funktionen werden in einem Block abgearbeitet.
Mit Hilfe des rechten Icons wird die gerade ausgeführte Prozedur oder Funktion in einem Block abgearbeitet. Anschließend wird das Programm angehalten.
Einführung in VB 19.02.09Seite 87
Haltepunkte ... werden durch einen farbigen Punkt am linken Rand des
Codefensters dargestellt. Die dazugehörige Zeile wird in der gleichen Farbe gekennzeichnet.
... können nicht auf Deklarationsanweisungen, leeren Zeilen, Sprunganweisungen oder Kommentaren gesetzt werden!
Das Programm wird mit <F5> gestartet. Das Programm wird an einem Haltepunkt automatisch unterbrochen. Ab dem Haltepunkt kann das Programm im Einzelschritt durchlaufen werden.
Einführung in VB 19.02.09Seite 88
Haltepunkte setzen und löschen Debuggen – Haltepunkt umschalten oder <F9> setzt einen Haltepunkt
in der aktuellen Zeile oder entfernt einen vorhanden Haltepunkt. Debuggen – Alle Haltepunkte löschen entfernt alle Haltepunkte aus
dem aktuellen Projekt. Debuggen – Haltepunkte deaktivieren. Das Programm wird nicht an den
gesetzten Haltepunkten angehalten, sondern vollständig durchlaufen. Die Haltepunkte werden nicht gelöscht.
Einführung in VB 19.02.09Seite 89
Verschiedene Fenster nutzen Voraussetzung: Das Programm wird im Einzelschritt durchlaufen. Debuggen – Fenster –
Direkt. Geben Sie den gewünschten Befehl ein. Schließen Sie die Zeile mit <RETURN> ab. Der Befehl wird direkt ausgeführt und das Ergebnis angezeigt.
Lokal. Alle im aktuellen Block, gültigen Variablen werden angezeigt. Aufrufliste. In welcher Zeile wird eine Prozedur aufgerufen? Überwachen. Kontrolle von Variablen, Audrücken, etc.
Einführung in VB 19.02.09Seite 90
Arbeiten mit dem Direktfenster Werte aus dem Code in das Direktfenster schreiben:
Die Anweisung Debug.Print ausdruck schreibt einen Wert in das Direktfenster.
Anweisungen direkt in das Fenster eingeben: Klicken Sie mit den Mauszeiger auf eine freie Stelle im Direktfenster. Geben Sie die Anweisung ?Variable ein. Schließen Sie die
Anweisung mit <ENTER> ab. Der Wert der Variablen wird in der nächsten Zeile angezeigt.
Die Anweisung variable = wert verändert den Wert der Variablen. Die Anweisung ?Funktion(para, para, ...) führt eine bestimmte
Funktion aus. Das Resultat der Funktion wird in der nachfolgenden Zeile angezeigt. Vordefinierte Funktionen können getestet werden.
Einführung in VB 19.02.09Seite 91
Überwachungsfenster Markieren Sie die Variable oder den Ausdruck, den Sie überwachen
möchten. Öffnen Sie mit der rechten Maustaste das dazugehörige Kontextmenü.
Wählen Sie den Befehl Überwachung hinzufügen im Kontextmenü aus. Der markierte Code wird in das Überwachungsfenster übernommen.
Passend zum Code wird der Wert und der dazugehörige Datentyp angezeigt.