De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Arrays Hoofdstuk 14. Visual Basic.NET voor studenten2 Inleiding Een array is een object, dat andere objecten groepeert 23549613732 Tinky WinkyDipsyLaaLaaPoo.

Verwante presentaties


Presentatie over: "Arrays Hoofdstuk 14. Visual Basic.NET voor studenten2 Inleiding Een array is een object, dat andere objecten groepeert 23549613732 Tinky WinkyDipsyLaaLaaPoo."— Transcript van de presentatie:

1 Arrays Hoofdstuk 14

2 Visual Basic.NET voor studenten2 Inleiding Een array is een object, dat andere objecten groepeert Tinky WinkyDipsyLaaLaaPoo Array van Integer waarden Array van String objecten Element Component Index Subscript

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

4 Hoofdstuk 14 Visual Basic.NET voor studenten4 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

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

6 Hoofdstuk 14 Visual Basic.NET voor studenten6 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

7 Hoofdstuk 14 Visual Basic.NET voor studenten7 Arrays doorgeven als parameters Bestudeer zelf de functie Sum() in het handboek 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)) OutputTextBox.AppendText(ControlChars.NewLine) Next End Sub

8 Hoofdstuk 14 Visual Basic.NET voor studenten8 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)

9 Hoofdstuk 14 Visual Basic.NET voor studenten9 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

10 Hoofdstuk 14 Visual Basic.NET voor studenten10 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"}

11 Hoofdstuk 14 Visual Basic.NET voor studenten11 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?

12 Hoofdstuk 14 Visual Basic.NET voor studenten12 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.

13 Hoofdstuk 14 Visual Basic.NET voor studenten13 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)

14 Hoofdstuk 14 Visual Basic.NET voor studenten14 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

15 Hoofdstuk 14 Visual Basic.NET voor studenten15 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

16 Hoofdstuk 14 Visual Basic.NET voor studenten16 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(NewLine) ResultTextBox.AppendText("Uren: " & CStr(vak.Uren)) Else MessageBox.Show("Vak: " & key & " niet gevonden.") End If End Sub

17 Hoofdstuk 14 Visual Basic.NET voor studenten17 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 Zoeken

18 Hoofdstuk 14 Visual Basic.NET voor studenten18 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?

19 Hoofdstuk 14 Visual Basic.NET voor studenten19 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


Download ppt "Arrays Hoofdstuk 14. Visual Basic.NET voor studenten2 Inleiding Een array is een object, dat andere objecten groepeert 23549613732 Tinky WinkyDipsyLaaLaaPoo."

Verwante presentaties


Ads door Google