MSDN Webcast:MSDN Webcast:
VB.NET für Einsteiger und Umsteiger, VB.NET für Einsteiger und Umsteiger, Teil 8Teil 8ArraysArrays(Level 100)(Level 100)
Presenter: Daniel WalzenbachPresenter: Daniel Walzenbach
TechnologieberaterTechnologieberaterMicrosoft Deutschland GmbHMicrosoft Deutschland [email protected]://blogs.msdn.com/walzenbach
VerlosungVerlosung
Programmieren lernen mit Programmieren lernen mit Visual Basic 2005Visual Basic 2005
10 Bücher 10 Bücher werden unter allen Teil-werden unter allen Teil-nehmern verlost, die an nehmern verlost, die an mindes-mindes-tens sieben Webcasts teilnehmentens sieben Webcasts teilnehmen
Visual Studio 2005 Visual Studio 2005 ExpressExpressKleine Geschwister des Visual Studio Kleine Geschwister des Visual Studio 20052005
KostenlosKostenlos
http://www.microsoft.com/germany/msdn/vstudio/products/express/vb/default.mspx
Visual Basic 2005 Express EditionVisual Basic 2005 Express Edition
Visual C# 2005 Express EditionVisual C# 2005 Express Edition
Visual C++ 2005 Express EditionVisual C++ 2005 Express Edition
Visual Web Developer 2005 Express Visual Web Developer 2005 Express EditionEdition
SQL Server 2005 Express EditionSQL Server 2005 Express Edition
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
Implementieren Sie Fehlerbehandlung Implementieren Sie Fehlerbehandlung für das Programm „Kreisinhalt für das Programm „Kreisinhalt berechnen“ aus Webcast #2berechnen“ aus Webcast #2
Schreiben Sie ein Programm welches den Schreiben Sie ein Programm welches den Kreisinhalt (A) berechnet.Kreisinhalt (A) berechnet.A = πr²A = πr²
Verwenden Sie Verwenden Sie Console.WriteLine()Console.WriteLine() und/oder und/oder Console.Write()Console.Write() und/oder und/oder Console.ReadLine() und Console.ReadLine() und System.Math.PISystem.Math.PI
Bitte geben Sie den Radius des Kreises in cm Bitte geben Sie den Radius des Kreises in cm ein: 5ein: 5
Der Kreisinhalt eines Kreises mit Radius 5cm Der Kreisinhalt eines Kreises mit Radius 5cm beträgt ca. 78,5cm².beträgt ca. 78,5cm².
Demonstration #1Demonstration #1
demodemo
Übungsaufgabe, Teil 7Übungsaufgabe, Teil 7
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Arrays - ÜbersichtArrays - Übersicht
Was ist ein Array?Was ist ein Array?Ein Array ist eine Gruppe von logisch in Ein Array ist eine Gruppe von logisch in Bezug stehenden Werten.Bezug stehenden Werten.
Ein Array erlaubt den Zugriff auf diese Ein Array erlaubt den Zugriff auf diese Werte über den Namen des Arrays und Werte über den Namen des Arrays und eine Zahl, den sogenannten Index.eine Zahl, den sogenannten Index.
Die einzelnen Werte eines Array werden Die einzelnen Werte eines Array werden Elemente genannt.Elemente genannt.
Das erste Element hat immer den Index Das erste Element hat immer den Index 0.0.
Elemente in einem Array sind von 0 bis Elemente in einem Array sind von 0 bis zu dem höchsten Index durchgängig zu dem höchsten Index durchgängig nummeriertnummeriert
Arrays anlegenArrays anlegen
Arrays werden wie alle anderen Arrays werden wie alle anderen Variablen mit dem Variablen mit dem DimDim Befehl Befehl deklariert.deklariert.
Zwei runde Klammern am Namen der Zwei runde Klammern am Namen der Variablen zeigen an, dass es sich um ein Variablen zeigen an, dass es sich um ein Array handeltArray handelt
ReDimReDim ändert die Größe des Arrays ändert die Größe des Arrays' Array mit 6 Werten (von 0 - 5) anlegenDim Zahlenreihe(5) As Integer ' Leeres, unbestimmtes Array anlegenDim Zahlenreihe2() As Integer' das Array auf 11 Felder festlegenReDim Zahlenreihe2(10) ' Leeres, unbestimmtes Array anlegenDim Zahlenreihe3 As Integer()' das Array auf 11 Felder festlegenReDim Zahlenreihe3(10)
Demonstration #2Demonstration #2
demodemo
Arrays anlegenArrays anlegen
Arrays - ÜbersichtArrays - Übersicht
Arrays können von jedem Typ Arrays können von jedem Typ angelegt werdenangelegt werdenInteger, Double, Bool, …Integer, Double, Bool, …
String, …String, …
Auch von (eigenen) Klassen oder Auch von (eigenen) Klassen oder Strukturen können Arrays angelegt Strukturen können Arrays angelegt werdenwerden
Beispielsweise kann die Klasse Beispielsweise kann die Klasse SpielerSpieler aus dem letzten Webcast in einem Array aus dem letzten Webcast in einem Array verwendet werdenverwendet werden
Bei Arrays handelt es sich um Bei Arrays handelt es sich um ReferenztypenReferenztypen
Arraygröße eines ArraysArraygröße eines Arrays
Das Das erste Element erste Element eines Arrays hat eines Arrays hat immer den Index immer den Index 00
Das Das letzte Element letzte Element eines Arrays hat eines Arrays hat die Nummer die Nummer nn, wobei , wobei nn die Zahl in der die Zahl in der Deklaration istDeklaration ist
Die Die Anzahl der Elemente Anzahl der Elemente eines eines Arrays ist Arrays ist n+1n+1' Ein Array mit drei Werten deklarierenDim Zahlenreihe(2) As Integer ' Elemente es Arrays setzenZahlenreihe(0) = 3 ' erster WertZahlenreihe(1) = 5Zahlenreihe(2) = 75 ' letzter Wert
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Arrays verwendenArrays verwenden
Auf die Werte eines Arrays kann über Auf die Werte eines Arrays kann über den Namen der Variable und den den Namen der Variable und den Index zugegriffen werdenIndex zugegriffen werden' Ein Array mit drei Werten deklarierenDim Zahlenreihe(2) As Integer ' Elemente es Arrays setzenZahlenreihe(0) = 3 ' erster WertZahlenreihe(1) = 5Zahlenreihe(2) = 75 ' letzter Wert ' Elemente auslesen und ausgebenConsole.WriteLine(Zahlenreihe(0))Console.WriteLine(Zahlenreihe(1))Console.WriteLine(Zahlenreihe(2))
Demonstration #3Demonstration #3
demodemo
Arrays verwendenArrays verwenden
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Arraygröße eines ArraysArraygröße eines Arrays
Achtung: Die Arraygröße eines Arrays Achtung: Die Arraygröße eines Arrays darf NICHT über- oder unterschritten darf NICHT über- oder unterschritten werdenwerden
Über- bzw. Unterschreiten der Über- bzw. Unterschreiten der Arraygröße produziert einen Arraygröße produziert einen LaufzeitfehlerLaufzeitfehler
Der Compiler kann diese Fehler beim Der Compiler kann diese Fehler beim Kompilieren nicht erkennenKompilieren nicht erkennenDim Zahlenreihe(2) As IntegerZahlenreihe(5) = 20 ' Fehler
Demonstration #4Demonstration #4
demodemo
Arraygröße über- bzw. unterschreitenArraygröße über- bzw. unterschreiten
Arrays mit Werten Arrays mit Werten initialisiereninitialisierenArrays können bei der Deklaration mit Arrays können bei der Deklaration mit Werten initialisiert werdenWerten initialisiert werden
Nur möglich, wenn das Array ohne Nur möglich, wenn das Array ohne Größenangabe deklariert wurdeGrößenangabe deklariert wurde
Initialwerte werden in geschweiften Initialwerte werden in geschweiften Klammern angegebenKlammern angegeben
Größe des Arrays wird automatisch Größe des Arrays wird automatisch angepasstangepasst' Ein Array mit dem Namen Team deklarieren
' und mit vier Werten initialisierenDim Team() As String = {"Sebastian", "Jens", "Christian", "Daniel"}
Dim Zahlenreihe() As Integer = {3, 5, 76}
Arrays dynamisch Arrays dynamisch vergrößernvergrößernDie Größe eines Arrays kann mit Die Größe eines Arrays kann mit ReDimReDim geändert werden geändert werden
Es kann auch eine Variable oder sogar Es kann auch eine Variable oder sogar ein Ausdruck verwendet werdenein Ausdruck verwendet werdenDim Zahlenreihe() As IntegerDim Anzahl As Integer Console.Write("Bitte die Anzahl der Werte eingeben: ")Anzahl = CInt(Console.ReadLine())
' alternative Möglichkeiten zu CInt' Anzahl = CType(Console.ReadLine(), Integer)' Anzahl = Integer.Parse(Console.ReadLine())' Anzahl = Convert.ToInt32(Console.ReadLine())
' Größe des Arrays anpassenReDim Zahlenreihe(Anzahl)
Arrays dynamisch Arrays dynamisch vergrößernvergrößernAchtung: Achtung: ReDimReDim bedacht aufrufen da bedacht aufrufen da rel. zeitintensivrel. zeitintensiv
Nicht für jedes neue Element Nicht für jedes neue Element ReDimReDim aufrufenaufrufen
Möglichst viele Elemente hinzufügenMöglichst viele Elemente hinzufügen
Die Größe des Arrays vorher berechnenDie Größe des Arrays vorher berechnen
ReDim PreserveReDim Preserve erhält alte Elemente erhält alte ElementeDim Zahlenreihe() As Integer = {5, 1, 3, 6}ReDim Preserve Zahlenreihe(2)ReDim Zahlenreihe(1)
Demonstration #5Demonstration #5
demodemo
Arrays mit Werten initialisieren und Arrays mit Werten initialisieren und Arraygröße ändernArraygröße ändern
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Arrays und SchleifenArrays und Schleifen
Arrays können mit Schleifen (Arrays können mit Schleifen (ForFor, , WhileWhile, , DoDo, , For EachFor Each) verarbeitet ) verarbeitet werdenwerden
Index (= Zahl in der Klammer) ist dann Index (= Zahl in der Klammer) ist dann durch die Laufvariable der Schleife durch die Laufvariable der Schleife definiertdefiniert
In einer Schleife können die Elemente In einer Schleife können die Elemente eines Arrays gelesen und geschrieben eines Arrays gelesen und geschrieben werdenwerden
ForFor Each…NextEach…Next Schleifen können sehr Schleifen können sehr gut zum Lesen eines Arrays gut zum Lesen eines Arrays verwendet werdenverwendet werden
Demonstration #6Demonstration #6
demodemo
Arrays in Schleifen verarbeitenArrays in Schleifen verarbeiten
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Befehle zu ArraysBefehle zu Arrays
Arrays erben von Arrays erben von System.ArraySystem.ArrayEigenschaften und Methoden von Eigenschaften und Methoden von System.ArraySystem.Array
Gehören zum .NET Framework (BCL)Gehören zum .NET Framework (BCL)
Arrays bieten weit mehr als nur einen Arrays bieten weit mehr als nur einen Container zur Speicherung von DatenContainer zur Speicherung von Daten
Es gibt viele spezielle Befehle für ArraysEs gibt viele spezielle Befehle für ArraysStatische und nicht statische MethodenStatische und nicht statische Methoden
Aufruf statischer Methoden Aufruf statischer Methoden ArrayArray.NameDerMethode(…).NameDerMethode(…)
Aufruf nicht statischer (Instanz-) MethodenAufruf nicht statischer (Instanz-) MethodenNameDesArrays.NameDerMethode(…)NameDesArrays.NameDerMethode(…)
Befehle zu ArraysBefehle zu Arrays
PropertiesPropertiesLength, Rank, …Length, Rank, …
MethodenMethodenClearClear
Copy, ConstrainedCopyCopy, ConstrainedCopy
ReverseReverse
Find, FindLast, FindAllFind, FindLast, FindAll
TrueForAllTrueForAll
SortSort
IndexOf, LastIndexOf, …IndexOf, LastIndexOf, …
Demonstration #7Demonstration #7
demodemo
Befehle zu ArraysBefehle zu Arrays
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
Mehrdimensionale ArraysMehrdimensionale Arrays
Arrays sind nicht auf eine Dimension Arrays sind nicht auf eine Dimension beschränkt. beschränkt.
Mehrdimensionale Mehrdimensionale Arrays können Arrays können angelegt werdenangelegt werden
Angabe der Dimensionen Angabe der Dimensionen bei der Deklarationbei der Deklarationdurch Komma getrennt durch Komma getrennt
Größe von Arrays beachten!Größe von Arrays beachten!
Dim Punkte(2, 3) As IntegerDim DreiDimensionen(,,) As Integer
3x4=12 Werte
Speicherbedarf von ArraysSpeicherbedarf von Arrays
Achtung! Mehrdimensionale Arrays Achtung! Mehrdimensionale Arrays können sehr viel Speicher belegenkönnen sehr viel Speicher belegen' Speicherbedarf pro Integerelement = 4 Byte' Anzahl der Elemente in diesem Array:' 100 * 100 * 100 = 1.000.000 Elemente' ==> Speicherbedarf des Arrays: knapp 4MBDim DreiDimensional(99, 99, 99) As Integer
Demonstration #8Demonstration #8
demodemo
Multidimensionale Arrays und Multidimensionale Arrays und SpeicherbedarfSpeicherbedarf
Verzweigte ArraysVerzweigte Arrays
Ein Array, dessen sämtliche Ein Array, dessen sämtliche Elemente ebenfalls Arrays sind.Elemente ebenfalls Arrays sind.
Ein verzweigtes Array ist nicht Ein verzweigtes Array ist nicht mit einem mehrdimensionalen mit einem mehrdimensionalen Array gleichbedeutendArray gleichbedeutend
Bsp. Kalender: 2-dimensional Bsp. Kalender: 2-dimensional aber nicht rechteckig. aber nicht rechteckig.
Dim sales()() As Double = New Double(11)() {}Dim month As IntegerDim days As IntegerFor month = 0 To 11 days = DateTime.DaysInMonth(Now.Year, month + 1) sales(month) = New Double(days - 1) {}Next month
Demonstration #9Demonstration #9
demodemo
Verzweigte ArraysVerzweigte Arrays
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
ÜbungsaufgabeÜbungsaufgabe
Verlosung von 11 Heften iX SPECAIL, Verlosung von 11 Heften iX SPECAIL, Programmieren in .NET, 01/03, unter Programmieren in .NET, 01/03, unter allen Teilnehmern, welche die Lösung allen Teilnehmern, welche die Lösung
bis zum 08.01.2007 einschließlichbis zum 08.01.2007 einschließlich
an an [email protected]
eingeschickt habeneingeschickt haben
WICHTIG!WICHTIG! Subject: „Get the BASICs, Subject: „Get the BASICs, Lösung 8“Lösung 8“
ÜbungsaufgabeÜbungsaufgabe
Berechnen Sie die Wurzeln von 1 bis Berechnen Sie die Wurzeln von 1 bis nn in einer in einer forfor Schleife Schleifenn soll von dem Anwender frei eingegeben soll von dem Anwender frei eingegeben werdenwerden
Speichern Sie die Wurzeln in einem Speichern Sie die Wurzeln in einem Array der richtigen GrößeArray der richtigen Größe
Bilden Sie den Mittelwert aller Bilden Sie den Mittelwert aller Wurzeln in dem ArrayWurzeln in dem Array
Implementieren Sie Implementieren Sie Ausnahmebehandlung um potentielle Ausnahmebehandlung um potentielle Fehler abzufangenFehler abzufangen
Geben Sie alle Wurzeln und deren Geben Sie alle Wurzeln und deren Mittelwert ausMittelwert aus
AgendaAgenda
Übungsaufgabe Teil 7Übungsaufgabe Teil 7
ArraysArraysÜbersichtÜbersicht
Arrays anlegen und verwendenArrays anlegen und verwenden
ArraygrößeArraygröße
Arrays und SchleifenArrays und Schleifen
Befehle zu ArraysBefehle zu Arrays
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte Arrays Arrays
ÜbungsaufgabeÜbungsaufgabe
ZusammenfassungZusammenfassung
ZusammenfassungZusammenfassung
Arrays werden wir normale Variablen Arrays werden wir normale Variablen angelegt. Angabe der Dimension in ()angelegt. Angabe der Dimension in ()
Arrays können von jedem Typ sein. Arrays können von jedem Typ sein. Auch (eigene) Klassen!Auch (eigene) Klassen!
Zugriff über den Index, Zugriff über den Index, 00-basiert-basiert
ReDim (Preserve)ReDim (Preserve)
Verarbeitung von Arrays mit SchleifenVerarbeitung von Arrays mit Schleifen
Arrays sind Objekte des .NET Arrays sind Objekte des .NET FrameworksFrameworks
Mehrdimensionale und verzweigte Mehrdimensionale und verzweigte ArraysArrays
Nächste TermineNächste Termine
VB.NET für Einsteiger und Umsteiger, Teil 9VB.NET für Einsteiger und Umsteiger, Teil 9Zeichenketten, Ereignisse und DelegatesZeichenketten, Ereignisse und Delegates
Voraussichtlich Montag, 08.01.2007 16:00-17:00 UhrVoraussichtlich Montag, 08.01.2007 16:00-17:00 Uhr
VB.NET für Einsteiger und Umsteiger, Teil VB.NET für Einsteiger und Umsteiger, Teil 1010
Die erste, eigene KlassenbibliothekDie erste, eigene KlassenbibliothekVoraussichtlich Montag, 15.01.2007 16:00-17:00 UhrVoraussichtlich Montag, 15.01.2007 16:00-17:00 Uhr
Referenzen & DownloadsReferenzen & Downloads
Arrays in Visual BasicArrays in Visual Basichttp://msdn2.microsoft.com/de-de/library/wak0wfyt(VS.80).aspx
Übersicht über Arrays in Visual Basic Übersicht über Arrays in Visual Basic http://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/2k7ayc03(VS.80).aspx 2k7ayc03(VS.80).aspx
Arraydimensionen in Visual Basic Arraydimensionen in Visual Basic http://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/02e7z943(VS.80).aspx 02e7z943(VS.80).aspx
Verzweigte Arrays in Visual Basic Verzweigte Arrays in Visual Basic http://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/hkhhsz9t(VS.80).aspx hkhhsz9t(VS.80).aspx
Referenzen & DownloadsReferenzen & Downloads
Arraygröße in Visual Basic Arraygröße in Visual Basic http://msdn2.microsoft.com/de-de/library/http://msdn2.microsoft.com/de-de/library/b388cb5s(VS.80).aspx b388cb5s(VS.80).aspx
Microsoft Visual Basic 2005 - Das Microsoft Visual Basic 2005 - Das EntwicklerbuchEntwicklerbuch
http://www.edv-buchversand.de/mspress/http://www.edv-buchversand.de/mspress/product.asp?cnt=product&id=ms-537&lng=0product.asp?cnt=product&id=ms-537&lng=0
MSDN Solve, Antworten für EntwicklerMSDN Solve, Antworten für Entwicklerhttp://msdn-solve.de/http://msdn-solve.de/
Questions and AnswersQuestions and Answers
Daniel [email protected] http://blogs.msdn.com/walzenbach