Arrays Hoofdstuk 14 Hoofdstuk 14.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

 De Robot  Het Programma  Film By Martijn Hazenboom.
Gegevensstructuren: list boxen en lijsten
PROS2 Les 11 Programmeren en Software Engineering 2.
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Datastructuren Analyse van Algoritmen en O
‘Inleiding programmeren in Java’ SWI cursus: ‘Inleiding programmeren in Java’ 4e college Woe 19 januari 2000 drs. F. de Vries.
VBA en VBS Een introductie.
Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)
Hoofdstuk 6: Controle structuren
VHDL Peter Slaets KHLim Functies en procedures Functies –type conversie functies »bit vector to integer en omgekeerd –verkorte componenten met maar 1 output.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Hoofdstuk 2 Hallo, C# !.
Les 2 Basisbouwstenen (deel 1)
De koektrommel of de grabbelton
Frank Stalpers en Ad Baars
Exceptions Hoofdstuk 17 Hoofdstuk 17.
Klassen schrijven Hoofdstuk 10. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe schrijf je een klasse Constructormethodes Public methoden Variabelen.
Herhaling: For, While en Do
Overerving Hoofdstuk 11 Hoofdstuk 11.
Methoden en argumenten
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
Bestanden Hoofdstuk 18 Hoofdstuk 18.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Visual Basic.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Visual Basic.NETPag.1 Hoofdstuk 10 - Grafische User Interface : Deel 2 Inleiding Menus ListBoxes ComboBoxes Multiple Document Interface (MDI) Windows.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Arrays.
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Testen Hoofdstuk 22. Visual Basic.NET voor studenten2 Inleiding Testen hebben als doel het ontdekken van bugs Het is echter onmogelijk om met testen te.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Les 6 Menu Programmeren met Visual Basic Karl Moens.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Debuggen Hoofdstuk 9 Hoofdstuk 9.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Objectgeoriënteerd Ontwerp
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Variabelen en berekeningen
Visual Basic.NETPag.1 Hoofdstuk 8 – Fout afhandeling Inleiding Structured Exception Handling Hoe fouten opvangen Geen foutafhandeling Alle fouten opvangen.
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
Hoofdstuk 3 - Conditionele logica
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tweedimensionale arrays
Tircms02-p les 2 Meer operatoren Arrays en pointers Types en conversie.
tircms02-p les 1 Operating Systems practicum
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Bewerkingen met Strings
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Gameprogrammeren: Lists en interfaces
Hoofdstuk 9.2 Strings.
Letterfrequentie turven
Tinpro015b-les 1 C++ voor C-kenners Voor Technische Informatica.
Arjan Egges & Paul Bergervoet
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Modderdorp UNPLUGGED Bron: csunplugged.org.
Software Development fundamentals
Software Development fundamentals
Gameprogrammeren: Arrays
Python – For loop + strings
Transcript van de presentatie:

Arrays Hoofdstuk 14 Hoofdstuk 14

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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