De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Arrays Hoofdstuk 14 Hoofdstuk 14.

Verwante presentaties


Presentatie over: "Arrays Hoofdstuk 14 Hoofdstuk 14."— Transcript van de presentatie:

1 Arrays Hoofdstuk 14 Hoofdstuk 14

2 Inleiding Een array is een object, dat andere objecten groepeert 23 54
Array van Integer waarden 23 54 96 13 7 32 Array van String objecten Tinky Winky Element Component Dipsy LaaLaa Poo 1 2 3 Index Subscript Visual Basic .NET voor studenten

3 Visual Basic .NET voor studenten
Een array creëren Dim ages(5) As Integer Dim band(3) As String Deze statements declareren twee variabelen: ages en band Automatisch worden twee array objecten aangemaakt die 6 resp. 4 elementen kunnen bevatten Visual Basic .NET voor studenten

4 Visual Basic .NET voor studenten
Indices Starten van 0 Zijn gehele waarden (Integer) Let op dat je index niet buiten het bereik van de array valt! Welk soort fout krijg je dan? ages(2) = CInt(TextBox1.Text) band(3) = TextBox2.Text TextBox3.Text = "first age is " & ages(0) TextBox4.Text = "4th TeleTubby is " & band(3) 'Fout statement ages(6) = 45 Visual Basic .NET voor studenten

5 Sommeren van de elementen
For i = 0 To ages.Length - 1 som = som + ages(i) Next For i = 0 To UBound(ages) som = som + ages(i) Next Volgende code is verkeerd, waarom? For i = 0 To ages.Length som = som + ages(i) Next Visual Basic .NET voor studenten

6 Visual Basic .NET voor studenten
De lengte van een array Lengte van een array is vast Property Length Maximum aantal elementen in de array Functie UBound(array) Hoogst mogelijke geldige index ReDim Een nieuw array object toekennen aan de variabele, de vorige inhoud gaat verloren ReDim Preserve Een nieuw array object toekennen aan de variabele en de elementen van de vorige array kopiëren ReDim (Preserve) liever niet gebruiken, beter is gebruik te maken van List, een “meegroeiende” array Visual Basic .NET voor studenten

7 Arrays doorgeven als parameters
Private Sub PrintArrays(ByVal name As String, _ ByVal arrayObj() As String) Dim i As Integer OutputTextBox.Clear() OutputTextBox.AppendText("Array " & name & " bevat: ") OutputTextBox.AppendText(ControlChars.NewLine) For i = 0 To arrayObj.Length - 1 OutputTextBox.AppendText(arrayObj(i)) Next End Sub Bestudeer zelf de functie Sum() in het handboek Visual Basic .NET voor studenten

8 For Each en arrays Private Function Sum(ByVal array() As Integer) As Integer Dim total As Integer total = 0 For Each n As Integer In array total = total + n Next Return total End Function Korter, maar met beperkingen (zie hoofdstuk 13) Visual Basic .NET voor studenten

9 Het gebruik van constanten
Definieer array dimensies altijd in termen van constanten. Zo vermijd je bugs als je later de dimensies wil wijzigen Const maxAges As Integer = 5 Const maxBands As Integer = 3 Dim ages(maxAges) As Integer Dim band(maxBands) As String Visual Basic .NET voor studenten

10 Een array initialiseren
Met een lus statement Als alle elementen op voorhand gekend zijn, kan je een initialisatie combineren met de declaratie Dim band() As String = {"Tinky Winky", "Dipsy", "LaaLaa", "Poo"} Visual Basic .NET voor studenten

11 Een voorbeeldprogramma
Bestudeer zelf de broncode Verklaar de fout die je krijgt als je onmiddellijk op de knop klikt, zonder waarden in te vullen. Welke oplossing stel je voor? Visual Basic .NET voor studenten

12 Een array als opzoektabel
Probleem: je hebt een zoeksleutel en je wil de bijhorende waarde opzoeken In het geval van arrays is de zoeksleutel de index. Typisch gebruik: weekdagen, maanden, seizoenen, … Meer algemeen kan je ook met objecten als zoeksleutel werken. Hiervoor dienen andere datastructuren, bijvoorbeeld: System.Collections.Generic.Dictionary Een Dictionary associeert met elke “key” een “value”. Deze “value” kan onmiddellijk op basis van deze “key” gevonden worden. Visual Basic .NET voor studenten

13 Visual Basic .NET voor studenten
Voorbeeld 1 Dim dayNumber as Integer Dim dayName as String Dim name() as String = _ {“Monday”,”Tuesday”,”Wednesday”,”Thursday”, _ “Friday”,”Saturday”,”Sunday”} ... 'Zoek de dag, gegeven een nummer dayName = name(dayNumber) Visual Basic .NET voor studenten

14 Voorbeeld 2: Dictionary
Public Class Vak Private naamVal As String Private docentVal As String Private urenVal As Integer Public Sub New(ByVal naam As String, _ ByVal docent As String, _ ByVal uren As Integer) ... End Sub Public Property Naam() As String Public Property Docent() As String Public Property Uren() As Integer End Class Visual Basic .NET voor studenten

15 Voorbeeld 2: Dictionary
Private Sub initializeDictionary() lookup= New Dictionary(Of String, Vak) Dim v1 As Vak = New Vak("Rapid Application Development", _ "Kris Hermans", 6) Dim v2 As Vak = New Vak("Logisch & algoritmisch denken", _ "Veerle Asaert", 7) Dim v3 As Vak = New Vak("Webdesign", _ "Marijke Willems", 4) lookup.Add(v1.Naam, v1) lookup.Add(v2.Naam, v2) lookup.Add(v3.Naam, v3) End Sub Key: sleutel waarmee objecten kunnen gezocht worden Value: te zoeken objecten Visual Basic .NET voor studenten

16 Voorbeeld 2: Dictionary
Private Sub ZoekButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles ZoekButton.Click Dim key As String Dim vak As Vak If (KeyTextBox.Text <> "") Then key = KeyTextBox.Text If lookup.ContainsKey(key) Then vak = lookup(key) ResultTextBox.Clear() ResultTextBox.AppendText("Vakgegevens voor " & key) ResultTextBox.AppendText(NewLine) ResultTextBox.AppendText("Docent: " & vak.Docent) ResultTextBox.AppendText("Uren: " & CStr(vak.Uren)) Else MessageBox.Show("Vak: " & key & " niet gevonden.") End If End Sub Visual Basic .NET voor studenten

17 Visual Basic .NET voor studenten
Zoeken Private Sub Find() Dim index As Integer Dim wanted As String wanted = TextBox1.Text index = 0 Do Until names(index) = wanted _ Or _ names(index) = "END" index = index + 1 Loop If names(index) = wanted Then Label1.Text = "number is " & numbers(index) Else Label1.Text = "name not found" End If End Sub Visual Basic .NET voor studenten

18 Visual Basic .NET voor studenten
Zoeken Hoeveel elementen moet je in het beste/slechtste geval doorlopen om het te zoeken element te vinden? Hoe evolueert de zoektijd als het aantal elementen in de array stijgt? Herschrijf dit voorbeeld met een Dictionary en onderzoek opnieuw de zoektijd. Conclusie? Visual Basic .NET voor studenten

19 Visual Basic .NET voor studenten
Arrays van objecten Tot hiertoe kennen we volgende datastructuren: Arrays List Dictionary Elk van deze structuren kan objecten bevatten, zowel afkomstig uit de bibliotheken of instanties van eigen klassen Bestudeer zelf de code van het voorbeeld Visual Basic .NET voor studenten


Download ppt "Arrays Hoofdstuk 14 Hoofdstuk 14."

Verwante presentaties


Ads door Google