vbg.vbnet.beginner Werken met arrays en andere collecties binnen Visual Basic.NET

Maat: px
Weergave met pagina beginnen:

Download "vbg.vbnet.beginner Werken met arrays en andere collecties binnen Visual Basic.NET"

Transcriptie

1 Het.NET Framework is zeer goed toegerust op het gebruik van arrays en andere typen collecties. Het is, doordat er meerdere classes beschikbaar zijn, echter lastig overzicht te krijgen. Er zijn ondermeer Array-, BitArray-, Stack-, Queue-, ArrayList, HashTable en SortedList-classes. Ze hebben in basis hetzelfde doel, maar is het u duidelijk wanneer u wèlke class het beste kan gebruiken? In dit artikel maakt u kennis met deze classes en zal worden uitgelegd voor welk doel u de desbetreffende class het best kunt inzetten. Gaat u er maar eens goed voor zitten! In de dagelijkse praktijk zijn er legio voorbeelden te bedenken die u als een array of een collectie zou kunnen definiëren. Denkt u maar eens een bedrijf waar een vijftal mensen werken en u wilt de namen van deze werknemers opslaan. Nu kunt u in uw programma voor elke werknemer een variabele aanmaken en de desbetreffende naam er aan toekennen. U moet dan alle namen van deze variabelen onthouden en u snapt waarschijnlijk ook wel dat het werken met die data ook er omslachtig is. Het is een eenvoudiger om een array of ander type collectie gebruiken. Arrays helpen u om gelijksoortige of vormige data in een aangesloten geheugengebied te bewaren. Array-class De Array-class bevindt zich in de System namespace en om deze class te gebruiken hoeft u dus geen extra namespace te importeren. U kunt eenvoudig een array maken door de variabele te dimensioneren en met behulp van de haakjes (x) om zo aan te geven dat het om een array van die variabele gaat. U hoeft niet direct het aantal elementen op te geven, dus hoe groot de array moet worden. Dit kunt u ook achteraf doen. In Listing 1 wordt een array gemaakt van het type String. Het eerste element heeft als index 0, dus wanneer we, zoals in dit geval, een array willen maken met 5 elementen, dan definiëren we deze als MijnVariabele(4). Listing 1 Eenvoudige array - 1 Private Sub TestArray_1() ' Dimensioneer Var --> 0 = eerste element Dim strwerknemers(4) As String ' Vul de waarden strwerknemers(0) = "Andre" strwerknemers(1) = "Willem" strwerknemers(2) = "Jacob" strwerknemers(3) = "Jan" strwerknemers(4) = "Roel" ' Toon de 5e werknemer Console.WriteLine(strWerknemers(4)) Dit voorbeeld laat goed zien hoe en waar de data is opgeslagen. Een wat ervarener ontwikkelaar zal de dimensioneren van de variabele en het toekennen van de waarden waarschijnlijk op één regel doen. Het resultaat is exact hetzelfde als in Listing 1, het is uiteraard veel minder code, maar het is zeker niet intuïtiever of beter te begrijpen. Listing 2 Eenvoudige array - 2 Private Sub TestArray_2() ' Dimensioneer Var --> 0 = eerste element Dim strwerknemers() As String = {"Andre", "Willem", _ "Jacob", "Jan", "Roel"} ' Toon de 5e werknemer Console.WriteLine(strWerknemers(4)) De techniek uit Listing 2 is bijvoorbeeld handig wanneer u een array gebruikt als parameter in een functie of bij het toekennen van een property op een object. Een voorbeeld: objtest.valuearray = New String() {"Andre", "Willem", "Roel"} Men hoeft dan niet eerst een tijdelijk variabele aan te maken. Wat wellicht ook opvalt is dat het aantal elementen niet hoeft te worden opgegeven; dit kan namelijk bepaald worden aan de hand van het aantal elementen die zijn gebruikt bij het initialiseren van de variabele. In bovenstaande voorbeelden hebben we arrays gemaakt die slechts uit één dimensie bestaan. Het is echter ook heel goed mogelijk om meerder dimensies te definiëren en zelfs arrays van arrays worden native ondersteund. Ik zal de properties en methods van de array-class bespreken aan de hand van een twee-dimensionele array. Dit type array kan men vergelijken met een tabel; een tabel bestaat uit kolommen en rijen. Ik ga er vanuit dat in elke kolom een gelijk aantal elementen zitten. Technisch gezien hoeft dit echter niet het geval te zijn, het is namelijk goed moge- VB Magazine Online / 11

2 lijk dat de eerste kolom tien elementen heeft en bijvoorbeeld de tweede kolom slechts 5. In ons voorbeeld wil ik naast de naam ook de woonplaats van de werknemer opslaan. De tabel bestaat dus uit twee kolommen namelijk Naam en Woonplaats en twee rijen met de waarden voor zowel André en Willem. Listing 3 Twee-dimensionale array Private Sub TestArray_3() ' Dimensioneer Var --> let op 2 dimensionaal + 2 rijen Dim strwerknemer(,) As String = {{"Andre", "Winterswijk"}, _ {"Willem", "Wijk bij Duurstede"}} ' Toon de naam + woonplaats 2 e werknemer Console.WriteLine(strWerknemer (1, 0) & " woont in " & _ strwerknemer (1, 1)) Bovenstaande code resulteert in het volgende resultaat: Afbeelding 2 Properties en methods array variabele Array-clas Shared methods De Array-class kent ook een aantal shared methods. Deze methods behoren tot de class en niet een object-instantie ervan. Dit houdt ondermeer in dat bij het aanroepen van deze mehods, de array nog als parameter dient te worden meegegeven. Hoewel het zou kunnen, zou je deze methods kunnen aanroepen op je variabele. Het ligt echter meer voor de hand om ze te gebruiken via de Array-class. In het voorbeeld hieronder wordt de array gesorteerd. Tevens kan men in dit voorbeeld zien, dat men zowel met een For.. als een For..Each loop door alle elementen kan lopen. Listing 5 Shared methods Private Sub TestArray_5() Afbeelding 1 Test twee-dimenionele array Doordat het in al onze voorbeelden allemaal arrays betreft hebben we tegelijkertijd de beschikking over een aantal properties en methods waarmee we informatie over onze array kun opvragen. In een niet multidimensionale array kunt u het aantal rijen met de.length property opvragen, maar bij een multidimensionale geeft het het aantal elementen terug, in onderstaand geval dus zes! Listing 4 Properties en methods Private Sub TestArray_4() ' Dimensioneer Var --> let op 2 dimensionaal + 3 rijen Dim strtest(,) As String = {{"Andre", "Winterswijk"}, _ {"Willem", "Wijk bij Duurstede"}, _ {"Jan", "Zwolle"}} ' Toon eigenschappen van de array Console.WriteLine("Index eerste rij: " & _ strtest.getlowerbound(0)) Console.WriteLine("Index laatste rij: " & _ strtest.getupperbound(0)) Console.WriteLine("Aantal rijen: " & _ strtest.getupperbound(0) - _ strtest.getlowerbound(0) + 1) Console.WriteLine("Aantal kolommen: " & strtest.rank) Console.WriteLine("Aantal elementen: " & strtest.length) ' Dimensioneer Var --> 0 = eerste element Dim intcounter As Int32 Dim strnaam As String Dim strwerknemers() As String = {"Andre", "Willem", _ "Jacob", "Jan", "Roel"} ' Met een For... alle elementen tonen For intcounter = 0 To strwerknemers.length - 1 Console.WriteLine(strWerknemers(intCounter)) Console.WriteLine("Gesorteerd...") ' Sorteer de array Array.Sort(strWerknemers) ' Maar een For...Each werkt ook For Each strnaam In strwerknemers Console.WriteLine(strNaam) Console.ReadLine() ' Wacht op een toets Op de Clear() method na kennen alle shared methods minimaal drie overloaded methods; het voert daarom te ver om in onderstaande overzicht elke method in al haar varianten uitvoerig te bespreken. De beschrijving van de method is dus vrij globaal. BinarySearch() Clear() Copy() Zoekt met behulp van een binary vergelijking naar een waarde in een 1- dimensionele array. De array moet wel gesorteerd zijn. Wist de inhoud van de array. Kopieert (eventueel een deel) van de array naar een andere array. VB Magazine Online / 11

3 CreateInstance() IndexOf() LastIndexOf() Reverse() Sort() Maak een nieuwe instantie van de Array-class. Hiermee zou men eventueel de lowerbound van de array kunnen laten afwijken van 0; dit is echter af te raden om in de toekomst verwarring te verkomen. Retourneert de index van de gezochte waarde die het eerst voorkomt in de array. Deze method lijkt erg op de IndexOf() method, het retourneert echter de laatst voorkomende index van een gezochte waarde. Keert alle waarden in de array om. Wanneer u deze method direct aanroept na een Sort(), dan kan men dus ook aflopend sorteren. Sorteert (een deel van) de elementen in de array. ' Voeg een collectie toe op een bepaalde positie ' in dit geval op de laatste --> we hadden ' hier dus ook AddRange() kunnen gebruiken strwerknemers.insertrange(3, strwerknemers) ' Verwijder een item op Index, we halen dus ' 'Piet' weer uit de collectie strwerknemers.removeat(1) ' Verwijder nu ook het andere element 'Piet' ' nu niet per index maar per key strwerknemers.remove("piet") De functionaliteit van de Array-class is voor veel doeleinden ruimschoots voldoende. Een nadeel is dat het achteraf toevoegen van een element wat omslachtiger is. U zult de array moeten redimensioneren met het keyword Preserve (zodat de bestaande inhoud bewaard blijft). In het laatste, dus hoogste element kunt u vervolgens de nieuwe waarde plaatsen. Wat ik persoonlijk ook een nadeel vind, is dat men de elementen alleen op een index kan benaderen. Wanneer de array uit unieke elementen bestaat, kan men het item nog wel snel vinden met behulp van de IndexOf() method. ArrayList-class De ArrayList-class is een soort kruising tussen een array en een Collection zoals u die misschien uit Visual Basic 6 kent. Aan de ene kant kunt werken met data zoals in een array, aan de andere heeft u de voordelen dat u eenvoudig elementen kunt toevoegen op een bepaalde locatie, kunt verwijderen en de elementen niet alleen per index kunt benaderen. Een variabele van het type ArrayList heeft een initiële grootte. Op zich hoeft u zich hierover geen zorgen te maken, de ArrayList past automatisch de grootte aan. Uit oogpunt van performance is het wel raadzaam om initieel de beste grootte te kiezen. Wanneer u geen grootte aangeeft, bestaat de ArrayList in eerste instantie uit 16 elementen. Het werken met een ArrayList is erg eenvoudig en u heeft een aantal methods tot uw beschikking die erg intuïtief werken. Listing 6 ArrayList-class Private Sub TestArrayList_1() Dim strwerknemers As New ArrayList(5) ' Voeg 2 werknemers toe.. strwerknemers.add("andre") strwerknemers.add("willem") ' Voeg 'Piet' toe op positie 1 (0-based) strwerknemers.insert(1, "Piet") Afbeelding 3 Resultaat test ArrayList-class Dat u een ArrayList ook kunt gebruiken voor objectcollecties van uw classes bewijst het volgende voorbeeld. U dient bij het bestuderen van de onderstaande code in uw achterhoofd te houden dat er wel een class Werknemer gedefinieerd moet zijn. In dit geval kent deze class twee public properties, namelijk.naam en.woonplaats. Omwille van de ruimte is de definitie van deze class hier niet afgedrukt, maar u kunt hem vinden in het voorbeeldproject dat u van onze site kunt downloaden. Listing 7 ArrayList van eigen objecten Private Sub TestArrayList_2() Dim objwerknemer As Werknemer Dim objwerknemers As New ArrayList(2) ' Maak twee objecten aan van het type 'Werknemer' ' de definitie hiervan bevindt zich de classmodule Dim objwerknemer1 As New Werknemer("Andre", "Winterswijk") Dim objwerknemer2 As New Werknemer("Willem", _ "Wijk bij Duurstede") ' Voeg deze object toe aan de ArrayList objwerknemers.add(objwerknemer1) objwerknemers.add(objwerknemer2) ' Doorloop de Werknmers en toon naam + woonplaats For Each objwerknemer In objwerknemers Console.WriteLine(objWerknemer.Naam & " woont in " & _ objwerknemer.woonplaats) ' Toon aantal items Console.WriteLine("Aantal items: " & objwerknemers) VB Magazine Online / 11

4 Afbeelding 4 Test ArrayList met eigen objecten.capacity ArrayList kan bevatten of stelt deze in. U kunt bijvoorbeeld de ArrayList exact de juiste capaciteit geven door: ArrayList.Capacity = ArrayList Retourneert het aantal elementen in de ArrayList..Item Retourneert een element op en specifieke index of stelt deze in. Dit is ook een soort default property, want: Arra- List(0) retourneert exact hetzelfde als ArrayList.Item(0) Adapter() Maakt een ArrayList wrapper om een IList object. Dit klinkt erg cryptisch en ik zal hier later op terugkomen. Add() Voegt een element aan het einde van de ArrayList toe. AddRange() Voegt een collectie van elementen (ICollection) aan het einde van de ArrayList toe. BinarySearch() Zoekt een element aan de hand van het binaire zoek algoritme. ArrayList dient wel gesorteerd te zijn. Clear() Verwijdert alle elementen uit de ArrayList. Let op de capaciteit wordt hierdoor niet beïnvloed. GetRange() Retourneert een ArrayList met een specifiek deel van de oorspronkelijke ArrayList. Insert() Voegt een element op een specifieke index toe aan de ArrayList. InsertRange() Voegt een collectie van elementen (ICollection) toe op een specifieke index. Remove() Verwijdert het eerste element van een specifiek object dat voorkomt in de ArrayList. RemoveAt() Verwijdert een element op een specifieke index in de ArrayList. RemoveRange() Verwijdert een range van elementen uit de ArrayList. Reverse() Zet de elementen van de ArrayList in de omgekeerde volgorde. SetRange() Overschrijft een range van elementen met een andere elementencollectie. Sort() Sorteert de elementen. Bij een ArrayList die bestaat uit bijvoorbeeld eigen objecten, dan wordt sorteren ingewikkelder. Op welke property moet gesorteerd worden? Men moet dan aan de slag met zogenaamde Comparerobjecten. Het voert nu te ver om hier dieper op in te gaan. TrimToSize() Past de capaciteit van de ArrayList aan aan het aantal elementen. Wanneer men minder dan 16 elementen heeft, wordt de capaciteit ingesteld op 16. In het bovenstaande overzicht zijn niet alle properties en methods besproken. De ArrayList kent in principe ook de dezelfde properties en methods als de eerder besproken Array-class. Ook kwam de method Adapter() aan de orde. Deze shared methode verwacht één parameter, namelijk een object dat is afgeleid van IList, en maakt daar als het ware een wrapper-object omheen. Bij IList-objecten kunt u denken aan items in een Listbox of Combobox. Met het wrapper-object kunt vervolgens allerlei trucs uithalen, want u heeft namelijk de beschikking of alle properties en methods die de ArrayList-class ook heeft. De Adapter() method maakt geen kopie van die variabele aan, maar kapselt zich echt om het originele IList-object heen. Methode aanroepen op de ArrayList hebben dus ook direct invloed op het IList-object. Een voorbeeld zal waarschijnlijk een en ander verduidelijken. Dim objadapter As ArrayList objadapter = ArrayList.Adapter(Combobox1.ListItems) objadapter.reverse() Met deze code draait u de volgorde van alle items in een Combobox om. U zou echter ook items kunnen toevoegen, verwijderen of sorteren. De mogelijkheden zijn legio, want alle besproken methods staan in principe tot uw beschikking. De ArrayList-class is erg veelzijdig en in veel gevallen vriendelijker dan de gewone Array-class. Ikzelf pas in veel gevallen deze class toe, omdat ik hem erg prettig in gebruik vindt. Hashtable-class Wanneer u in het verleden, dus in Visual Basic 6, gebruik heb gemaakt van het Dictionary-object, dan zal u deze class zeker bekend voorkomen. Deze class implementeert namelijk de IDictionary-interface. Alle objecten die afgeleid zijn van IDictionary gebruiken in principe twee series van variabelen, de values en de keys. U gebruikt de key om vervolgens de waarde (value) weer op te halen. Deze class is hiervoor geoptimaliseerd en zal dus voor dit soort scenario s de beste performance geven. Wanneer een keyvalue paar wordt toegevoegd aan de Hashtable object, dan wordt de positie van het element in de interne array gebaseerd op de numerieke hash van de key. Bij het zoeken van het element (dus key) wordt er weer gebruik gemaakt van die numerieke hash. Het element kan razendsnel gelokaliseerd worden, zonder intern alle elementen te hoeven doorlopen. U kunt elk object als key gebruiken, want achter de schermen wordt de GetHashCode() method gebruikt om de hash te genereren. Deze method is afgeleid van System.Object, de moeder van alle variabelen en datatypes. Er bestaat de kans, afhankelijk van hoe de hashcode wordt geëvalueerd, dat er meerdere keys naar dezelfde positie verwijzen. We spreken dan van een collision. Maakt u geen zorgen, dit wordt netjes voor u geregeld, het kan echter wel de performance beïnvloeden. Met behulp van de zoge- VB Magazine Online / 11

5 naamde LoadFactor kunt u de kans op de collision verkleinen, maar dit houdt wel in dat u concessies doet aan performance. De performance kunt u positief beïnvloeden, door, net als bij de ArrayList-class, te kiezen voor een zo n goed mogelijke begincapaciteit. U kunt zelfs bepalen of wilt dat de hash door een andere provider wordt gegenereerd. In praktijk heb ik echter nog nooit LoadFactors of HashCodeProviders hoeven gebruiken. Afbeelding 5 Gebruik van de Hashtable-class Listing 8 Test Hashtable Private Sub TestHashTable_1() Dim hstlanden As New Hashtable(3) ' Voeg elementen toe hstlanden.add("nl", "Nederland") hstlanden.add("be", "België") hstlanden.add("de", "Duitsland") ' Toon het land 'BE' Console.WriteLine("BE: " & hstlanden("be")) ' Keys aanwezig? Console.WriteLine("NL in lijst: " & _ hstlanden.containskey("nl")) Console.WriteLine("DK in lijst: " & _ hstlanden.containskey("dk")) ' Waarde aanwezig? Contextgevoelig? Console.WriteLine("'Duitsland' in lijst: " & _ hstlanden.containsvalue("duitsland")) Console.WriteLine("'DUITSLAND' in lijst: " & _ hstlanden.containsvalue("duitsland")) ' Verwijder Belgie hstlanden.remove("be") ' Toon aantal items Console.WriteLine("Aantal items: " & hstlanden) De HashTable is uitermate geschikt voor zogenaamde Lookup-tables. Het kan elementen razendsnel terugvinden in de collectie. U kunt ook numerieke waarden als key gebruiken, waardoor het benaderen van de waarden in de hashtable erg veel lijkt op het benaderen van elementen in een normale array, bijvoorbeeld hsttest(0). Afbeelding 6 Resultaat Test HashTable Het is belangrijk te onthouden dat het zoeken naar de key of value contextgevoelig is. Zie in dit licht het codevoorbeeld (Listing 8) naar de waarde Duitsland en DUITS- LAND. De een wordt wel gevonden, de ander dus niet. Wanneer u de waarde probeert in te stellen van een item dat niet kan worden gevonden, dan wordt het automatisch toegevoegd. Wilt u echter toch een hashtable waarbij de key niet contextgevoelig wordt gezocht, dan kunt u uitwijken naar de CreateCaseInsensitiveHashtable() method op de Specialized.CollectionUtil-class. U ziet dat Listing 9 Toch niet contextgevoelig? Private Sub TestHashTable_2() Dim hstlanden As Hashtable = _ Specialized.CollectionsUtil.CreateCaseInsensitiveHashtable(2) ' Voeg landen toe hstlanden.add("nl", "Nederland") hstlanden.add("be", "België") ' Key aanwezig? Contextgevoelig? Console.WriteLine("'NL' in lijst: " & _ hstlanden.containskey("nl")) ' = True Console.WriteLine("'nl' in lijst: " & _ hstlanden.containskey("nl")) ' = True Zoals al eerder vermeld kunt u ook numerieke waarden gebruiken als key. U moet zich niet laten verleiden om te denken dat dit dan de index betreft. Dit hoeft absoluut niet zo te zijn! Bekijkt u de code in Listing 10 maar eens: Listing 10 Valkuil benaderen hashtable per Index Private Sub TestHashTable_3() Dim objde As DictionaryEntry Dim hsttest As New Hashtable(3) ' Voeg werknmers toe met een bepaalde key hsttest.add(2, "Andre") hsttest.add(1, "Willem") hsttest.add(0, "Jacob") ' Toon de werknmers op basis van Key --> Het lijkt ' alsof we de hashtable per Index benaderen Console.WriteLine("hstTest(0) = " & hsttest(0)) Console.WriteLine("hstTest(1) = " & hsttest(1)) Console.WriteLine("hstTest(2) = " & hsttest(2)) VB Magazine Online / 11

6 ' Doorloop nu de hashtable van begin tot eind For Each objde In hsttest Console.WriteLine(objDE.Value) Het lijkt erop dat we de hashtable benaderen op basis van de Index. Het element hsttest(0) bevindt zich niet perse op de eerste positie. Waarschijnlijk bevindt het zich als laatste item in de hashtable. Dit hoeft echter niet zo te zijn; de fysieke volgorde van de elementen in de hashtable is onvoorspelbaar en eigenlijk ook niet van belang. U moet er echter wel voor waken om code te schrijven die hier vanuit gaat. Veel ontwikkelaars zijn al in deze valkuil getrapt Afbeelding 7 Waarden in hashtable worden benaderd per key hashtable bevat, dus het aantal keyvalue paren..item(key) Retourneert de waarde van een bepaalde key of stelt deze in. Keys Retourneert een ICollection met daarin de alle keys van de hashtable. Values Retourneert een ICollection met daarin de alle waarden van de hashtable. Begint het u al te duizelen? Zijn er meer vragen dan antwoorden? Ik kan me er iets bij voorstellen. Maakt u echter toch nog uw borst nat. Het vlaggenschip van de collectionachtige objecten moet nog besproken worden: de SortedList-class. Het object lijkt enerzijds veel op de hashtable, maar het beschikt ook over de functionaliteit om alle elementen gesorteerd te houden. Standaard worden alle items gesorteerd op de key. Om u goed het verschil te laten zien tussen de HashTable-class en de SortedList-class heb ik de code uit Listing 10 omgezet naar het gebruik van de SortedList-class. Listing 11 SortedList-class Private Sub TestSortedList_1() Dim objde As DictionaryEntry Dim slstest As New SortedList(3) ' Voeg werknmers toe met een bepaalde key slstest.add(2, "Andre") slstest.add(1, "Willem") slstest.add(0, "Jacob") ' Toon de werknmers op basis van Key --> Het lijkt ' alsof we de sortedlist bij Index benaderen Console.WriteLine("slsTest(0) = " & slstest(0)) Console.WriteLine("slsTest(1) = " & slstest(1)) Console.WriteLine("slsTest(2) = " & slstest(2)) ' Doorloop nu de hashtable van begin tot eind For Each objde In slstest Console.WriteLine(objDE.Value) Add(key, value) Voegt een element toe aan de hashtable. Clear() Verwijdert alle elementen in de hashtable. Contains(key) Retourneert een booleaanse waarde of de key in de hashtable voorkomt. ContainsKey(key) Retourneert een booleaanse waarde of de key in de hashtable voorkomt. Is dus hetzelfde als Contains(). ContainsValue(Value) Retourneert een booleaanse waarde of de waarde in de hashtable voorkomt Remove(key) Verwijdert een element (met de desbetreffende key) uit de collectie. De hashtable-class is een erg krachtig gereedschap wanneer u met key-value paren moet werken. Het mist de mogelijkheden die bijvoorbeeld de ArrayList-class heeft met betrekking tot sorteren, omkeren, zoeken, bepaalde ranges doorzoeken, enzovoort. De class is er immers ook niet voor bedoeld. Het heeft slecht één doel: u zo snel mogelijk de waarde geven behorende bij de opgegeven key. SortedList-class Afbeelding 8 Automatisch sorteren SortedList-class Vergelijk afbeelding 7 en afbeelding 8. U ziet dat de items gesorteerd zijn op basis van de key. Zoals u ook al weet kan de key ook een variabele van het type String zijn, waardoor u het kan laten sorteren waarop u maar wilt, mits de keys maar uniek zijn. Dit is niet nodig voor het sorteren, maar u kunt nu eenmaal geen dubbele keys gebruiken in de SortedList (en HashTable en ) Wilt u toch nog sorteren op andere waarden dan zult u aan de slag moet met objecten die afgeleid zijn van ICompare en minimaal de methode Compare() implementeren. Hiermee kunt u bijvoorbeeld een SortedList met Werknemer-objecten laten sorteren op de Woonplaats-property. Het voert nu echter te ver om dit verder uit te werken, maar op het Internet zijn een aantal voorbeelden te vinden. Het klinkt ingewikkelder dan het feitelijk is. VB Magazine Online / 11

7 Het sorteren van de keys gebeurd standaard contextgevoelig. U kunt dit standaard gedrag overriden door wederom de Specialized.CollectionUtil-class te gebruiken. In tegenstelling tot het eerdere voorbeeld bij de HashTable roept u nu de CreateCaseInsenstiveSortedList() method aan. De syntax is verder hetzelfde. Het aantal methods waarover de SortedList beschikt overtreffen alle ander classes. Een aantal op een rij:.capacity SortedList kan bevatten of stelt deze in. Zie: ArrayList. SortedList bevat..item(key) Retourneert de waarde van een bepaalde key of stelt deze in. Keys Retourneert een ICollection met daarin de alle keys van de SortedList. Values Retourneert een ICollection met daarin de alle waarden van de SortedList. Add(key, value) Voegt een element toe aan de Sorted- List. Clear() Verwijdert alle elementen in de SortedList. Contains(key) Retourneert een booleaanse waarde of de key in de SortedList voorkomt. ContainsKey(key) Retourneert een booleaanse waarde of de key in de SortedList voorkomt. Is dus hetzelfde als Contains(). ContainsValue(Value) Retourneert een booleaanse waarde of de waarde in de SortedList voorkomt GetByIndex(Index) Retourneert een element op de specifieke index. GetKey(Index) Retourneert de key op een de specifieke index. GetKeyList() Retourneert een IList met de keys uit de SortedList. GetValueList() Retourneert een IList met de waarden uit de SortedList. IndexOfKey(Key) Retourneert de index van de opgegeven key. IndexOfValue(Value) Retourneert de index van de opgegeven waarde. Remove(key) Verwijdert een element (met de desbetreffende key) uit de SortedList. RemoveAt(Index) Verwijdert een element (met de desbetreffende index) uit de SortedList. SetByIndex(Index, Value) Vervangt een element op de opgegeven index TrimToSize() Maak de capaciteit gelijk aan het aantal elementen. (.Capacity = ) Performance U begrijpt vast zeker wel dat al deze functionaliteit ook een keerzijde heeft. Francesco Balena heeft voor zijn boek Programming MS Visual Basic.NET 2003 een test gedaan met een routine die elementen toevoegt aan de collectie en daarna de performance van de ArrayList, HashTable en SortedList met elkaar vergeleken. De ArrayList was 4 maal sneller dan de HashTable. De HashTable was vervolgens weer 8 tot 100 maal sneller dan de SortedList. Deze cijfers zijn natuurlijk niet helemaal representatief en onder alle omstandigheden valide, maar het geeft toch wel een indruk. Het moet u echter wel aan het denken zetten of u daadwerkelijk zo n zware class als de SortedList nodig heeft. Microsoft.VisualBasic.Collection-class Om de verwarring nog groter te maken: wanneer u de referentie naar Microsoft.VisualBasic niet expliciet verwijderd heeft, heeft u standaard ook nog de mogelijkheid om een variabele aan te maken van het type Collection. Deze class is exact hetzelfde als de Collection-class zoals u die wellicht uit Visual Basic 6 kent. Hoewel de class heerlijk overzichtelijk is, met alleen de properties en methods die u echt nodig heeft en hoewel de class ook geweldig performed en bijna net zo flexibel is als de HashTable-class. moet u hem weer snel vergeten. Daar zijn eigenlijk een aantal redenen voor te noemen. Persoonlijk vind ik de belangrijkste reden dat uw code niet meer compatible is met bij bijvoorbeeld C#. Daarnaast heeft de Collectionclass de nare eigenschap te beginnen bij 1 en dus niet bij 0 zoals alle andere soortgelijke datatypen binnen het.net Framework wel beginnen. Als laatste kunnen er erg makkelijk fouten optreden doordat de key of index anders wordt geïnterpreteerd. Bestudeert u onderstaande code eens goed en u weet precies wat ik bedoel. Gewoon niet meer gebruiken dus Listing 12 Microsoft.VisualBasic.Collection Private Sub TestCollection_1() Dim colwerknemers As New Collection ' Maak objecten aan Dim objwerknemer1 As New Werknemer("Andre", "Winterswijk") Dim objwerknemer2 As New Werknemer("Willem", _ "Wijk bij Duurstede") ' Voeg de objecten toe aan de collectie ' Add(object, [key],..) colwerknemers.add(objwerknemer1, "2") colwerknemers.add(objwerknemer2, "1") ' Microsoft.VisualBasic.Collection begint bij 1! ' Zonder quotes ==> zoeken op Index --> Andre Console.WriteLine(CType(colWerknemers(1), Werknemer).Naam) ' Met quotes --> zoeken op Key --> Willem Console.WriteLine(CType(colWerknemers("1"), Werknemer).Naam) Door het afwijkende datatype wordt 1 en 1 anders geïnterpreteerd en resulteert in verwarrende resultaten. Afbeelding 9 Hoezo verwarrend? (1) of ( 1 ). VB Magazine Online / 11

8 BitArray-class De BitArray-class is ontwikkeld om op een zeer optimale manier te kunnen werken met arrays, waarbij de elementen uit slechts één bit bestaan. In feit is het dus een array met enkel en alleen booleaanse waarden. Listing 13 Test BitArray-class Private Sub TestBitArray_1() ' Maak een BitArray met alle waarden True Dim btatest As New BitArray(16, True) ' Zet eerste element op False btatest.set(0, False) ' Toon 1e + 2e element met Get() en Item() Console.WriteLine("Get(0) :" & btatest.get(0)) Console.WriteLine("Item(1):" & btatest.item(1)) ' Inverteer in een keer hele array.. True wordt ' False, False wordt True btatest.not() ' Toon 1e + 2e element met Get() en Item() Console.WriteLine("Get(0) :" & btatest.get(0)) Console.WriteLine("Item(1):" & btatest.item(1)) ' Ook For..Each werkt ook --> tel aantal False Dim intfalsecount As Int32 Dim blncurrentvalue As Boolean For Each blncurrentvalue In btatest If blncurrentvalue = False Then intfalsecount += 1 ' Print dus 15 Console.WriteLine("Er zijn {0} waarden False", intfalsecount) De class kent een aantal methods die het werken met bits en bitsgewijze vergelijken een stuk eenvoudiger maken, zoals Not(), And(), Or() en Xor(). Ook kan men BitArrays eenvoudig instantiëren op basis van een andere BitArray. Virtueel gezien bestaat er geen maximum aantal elementen. BitArray bevat...item(index) Retourneert de waarde van element of stelt deze in..length BitArray bevat of stelt deze in And(bitarrqy) Voert een bitsgewijze And operatie uit op de elementen in de huidige BitArray ten opzichte van de meegegeven andere BitArray. CopyTo( Kopieert een BitArray naar een andere, 1-dimensionale Array. Get(index) Retourneert de waarde van een element op een specifieke locatie. Not() Or(bitarray) Set(index, boolean) SetAll(boolean) Xor(bitarray) Inverteert alle waarden in de array, zodat True False wordt, en andersom Voert een bitsgewijze Or operatie uit op de elementen in de huidige BitArray ten opzichte van de meegegeven andere BitArray. Stel de waarde in van een specifiek element/ Stelt de waarden in van alle elementen in de BitArray. Voert een bitsgewijze exclusive Or operatie uit op de elementen in de huidige BitArray ten opzichte van de meegegeven andere BitArray. BitVector32-class In tegenstelling tot de BitArray-class, kent de BitVectorclass een beperking van 32 elementen. Ook kan kan de BitVector32-class waarden (integers) opslaan tot 32 bits. Het is met name handige wanneer u moet werken met bitgecodeerde velden. In praktijk wordt dit vaak gebruikt om bepaalde hardware aan te sturen. Omdat het element een element opgebouwd kan zijn uit secties groter dan één bit, moet men zogenaamde sections definiëren. Men dient dat de doen met de CreateSection() method. De eerste parameter bevat de maximale integerwaarde (om de grootte van de sectie te bepalen) en de tweede parameter een eventueel vorige sectie. Het feit dat deze class zich in de namespace System.Collection.Specialized bevindt, geeft eigenlijk al aan dat dit een bijzondere class is; een class die waarschijnlijk door een zeer kleine groep mensen gebruikt zal worden. Daarom laat ik in dit artikel het voorbeeld achterwege. U kunt het echter wel terugvinden in het voorbeeldproject (TestBitVector32_1()). Stack-Class De Stack-class is bedoeld om zogenaamde last-in-first-out (LIFO) principes te implementeren. Het lijkt op het bouwen van een toren. Telkens wordt er een blokje op de toren gelegd en eventueel wordt de toren ook weer blokje voor blokje afgebroken. Binnen Visual Basic 6 werkt mijn algemene ErrorHandling-component op dezelfde wijze. Bij binnenkomst in een procedure wordt de procedurenaam op de stack gepusht en bij het verlaten van de procedure weer van de stack gepopt, dus er weer afgehaald. Hierdoor kun je bij eventuele fouten precies zien welke weg je code gegaan is om daar te belanden waar het nu een fout tegenkomt. De CallStack-window binnen Visual Studio.NET werkt overigens op dezelfde wijze. Ik verdenk Microsoft ervan dat ze dat van mij hebben afgekeken Afbeelding 10 Test Stack-class VB Magazine Online / 11

9 Listing 14 Test Stack-class Private Sub TestStack_1() Dim objstack As New Stack(3) ' Voeg items toe --> 3 items objstack.push("procedure A") objstack.push("procedure B") objstack.push("procedure C") ' Haal het laatste item eraf Console.WriteLine("Aantal: " & objstack) Console.WriteLine("Pop laatste waarde: " & objstack.pop()) Console.WriteLine("Aantal: " & objstack) ' Alleen even de laatste waarde bekijken Console.WriteLine("Peek laatste waarde: " & objstack.peek()) Console.WriteLine("Aantal: " & objstack) ' Maak Stack weer leeg Console.WriteLine("Pop laatste waarde: " & objstack.pop()) Console.WriteLine("Pop laatste waarde: " & objstack.pop()) Het principe is simpel. U voegt een element toe met de method Push(). U haalt de data op en verwijdert deze met Pop(). Wilt u alleen de waarde bekijken dan gebruikt u Peek(). Retourneert het aantal elementen in de Stack. Clear() Verwijdert alle elementen uit de Stack. Contains(value) Retourneert True indien de gezocht waarde zich in de Stack bevindt. Peek() Retourneert de laatste waarde in de Stack, maar verwijdert het niet. Pop() Retourneert en verwijdert de laatste waarde in de Stack. Push() Voegt een item bovenop de Stack toe. ToArray() Kopieert de Stack naar een nieuwe Array. Afbeelding 11 Dimensioneer een Queue Wanneer u een Queue aanmaakt dient u een initiële capaciteit op te geven en eventueel een waarde waarmee de queue zich moet vergroten, indien de maximale grootte bereikt is. Het vergroten van de queue gebeurd overigens volledig automatisch en u hoeft zich daar geen zorgen over te maken. De werking van Queue-class is ook erg eenvoudig en lijkt sterk op de Stack-class. De Push()- en de Pop()-method zijn vervangen door de Enqueue()- en Dequeue()-method. Listing 15 Queue-class Private Sub TestQueue_1() Dim objq As New Queue(3) ' Voeg items toe --> 3 items objq.enqueue("product A") objq.enqueue("product B") objq.enqueue("product C") ' Haal het eerste item eraf Console.WriteLine("Aantal: " & objq) Console.WriteLine("Dequeue 1e waarde : " & objq.dequeue()) Console.WriteLine("Aantal: " & objq) ' Alleen even de nieuwe eerste waarde bekijken Console.WriteLine("Bekijk 1e waarde: " & objq.peek()) Console.WriteLine("Aantal: " & objq) ' Maak Queue leeg Console.WriteLine("Dequeue 1e waarde : " & objq.dequeue()) Console.WriteLine("Dequeue 1e waarde : " & objq.dequeue()) Bovenstaande code geeft het volgende resultaat: Queue-class Iedereen die vroeger economie in zijn of haar vakkenpakket had zitten, herinnert zich waarschijnlijk nog wel dat er naast het eerder genoemde LIFO principe ook nog een FIFO principe bestaat: first-in-first-out. Hiervoor kunt u de Queue-class gebruiken. Het werkt als een soort buffer. Aan de achterkant van de queue wordt telkens nog wat toegevoegd, terwijl men aan de voorkant van de queue hard zijn best doet om de queue of wachtrij weg te werken. U kunt het het beste vergelijken met een lopende band, waarbij de werknemers aan het einde de producten inpakken en dat machines nieuwe producten blijven aanvoeren. Of misschien wat dichter bij huis, uw printerwachtrij op uw eigen computer. Afbeelding 12 Test de Queue-class Retourneert het aantal elementen in de Queue. Clear() Verwijdert alle elementen uit de Queue. Contains(value) Retourneert True indien de gezocht waarde zich in de Queue bevindt. VB Magazine Online / 11

10 Dequeue() Enqueue() Peek() ToArray() Retourneert en verwijdert de eerste waarde in de Queue. Voegt een item aan het einde van de Queue toe. Retourneert de eerste waarde in de Queue, maar verwijdert het niet. Kopieert de Queue naar een nieuwe Array. Zowel de Stack- als de Queue-class heb ik in praktijk nog nooit toegepast. Ik kan me echter goed voorstellen, bijvoorbeel in asynchrone processen, dat een Queue-class erg handig kan zijn. Samenvattend In zekere zin heb ik geprobeerd volledige te zijn. Ik heb geprobeerd u duidelijk te maken wat de globale werking van de verschillende classes zijn en in welke situaties u die classes het beste zou kunnen toepassen. Vanuit dat oogpunt is dit artikel redelijk volledig. Daar tegenover staat dat ik alle besproken methods, zowel in dit artikel als in het voorbeeldproject, slechts heel summier heb belicht. Ik heb mij gericht op de core-functionaliteit, maar bijna alle methods hebben een aantal overloads, en bijna alle classes kennen meerdere constructors. Alleen over dit onderwerp kan men een boek schrijven. Om de diverse classes een beetje met elkaar te kunnen vergelijken en om snel inzicht te krijgen in de sterke en zwakke punten van die class, zet ik de meest voor de hand liggende globaal naast elkaar. De gekozen waarden voor ondermeer performance van het sorteren en zoeken zijn niet verkregen door eigen testprocedures. Ik heb ze verkregen via bronnen op het Internet en naar mijn mening benaderen ze wel goed de werkelijkheid. Er zullen echter absoluut voorbeelden te bedenken zijn, waarin de getoonde waarden niet geheel reëel zijn. Stack traag aan einde aan einde Queue traag aan einde aan begin Collection erg snel flexibel flexibel (*) Het element zal gelijk worden gesorteerd. System.Collections BitArray Queue Stack ArrayList ICollection IEnumerable IList HashTable ISerializable IDictionary SortedList (ReadOnly)CollectionBase is achterweg gelaten Afbeelding 13 Interface-afhankelijkheden van de classes Class Duplicaten Vergroten Sorteren Array(structuren) ja lastig goed Array(objecten, 2) ja lastig traag ArrayList Ja auto goed SortedList nee auto auto HashTable nee auto auto Stack ja auto n.v.t. Queue Ja auto n.v.t. Collection nee auto traag Class Zoeken Toevoegen Verwijderen Array(structuren) traag lastig lastig Array(objecten, 2) traag lastig lastig ArrayList snel flexibel flexibel SortedList snel n.v.t. (*) flexibel HashTable snelst n.v.t. (*) flexibel In bovenstaande afbeelding kunt u zien welke interfaces de besproken classes implementeren. Wanneer u de kenmerken van de interfaces IList, ICollection en IEnumerable kent, en u weet welke classes deze implementeren, dan bent u voor een groot deel in staat om het gedrag van alle besproken classes te verklaren. Want in feite zijn het deze drie interfaces die het bepalen. U kunt de voorbeeldcode van onze website ( downloaden. Bronnen Programming MS Visual Basic.NET v2003 Francesco Balena (Microsoft Press) Programmeren met Visual Basic.NET David Grundgeiger (O Reilly/Academic Service) Visual Basic.NET Het complete handboek Bill Evjen, Jason Beres e.a (Academic Service) MS Visual Basic.NET Programmers Cookbook Mathew MacDonald (Microsoft Press) VB Magazine Online / 11

11 Applied.NET Framework programming VB.NET Jeffrey Richter en Francesco Balena (MS Press) mparison.asp a.htm Wie is André Obelink? André Obelink (1969) is werkzaam als technical manager en consultant bij AcouSoft Informatisering B.V. AcouSoft is marktleider in Nederland op het gebied van software voor de audicienbranche. Daarnaast bouwt AcouSoft maatwerkapplicaties en ondersteunt zij andere bedrijven bij allerhande softwaretrajecten in VB6/VB.NET/MS Access 97/XP en SQL-Server 7/2000. André is een MCSD, programmeert in Visual Basic sinds 1991 (ja versie 1.0 dus..) en behoort tot een van de oprichters van de Visual Basic Groep. Als hij niet programmeert, doceert, leest, schrijft of droomt over programmeren, brengt hij graag zijn tijd door met zijn vrouw en twee kinderen. U kunt hem bereiken via a.obelink@vbgroup.nl Copyright Visual Basic Groep. Dit artikel is auteursrechtelijk beschermd. Afdrukken voor eigen gebruik is toegestaan. VB Magazine Online / 11

vbg.vbnet.beginner Omgaan met files en directories binnen Visual Basic.NET

vbg.vbnet.beginner Omgaan met files en directories binnen Visual Basic.NET In Visual Basic 6 was het werken met bestanden en mappen niet altijd even vriendelijk. Met de komst van het FileSystemObject binnen de Microsoft Scripting Runtime library werd het al veel beter. Het.NET

Nadere informatie

VB Magazine Online 2004 01/08 1 / 6

VB Magazine Online 2004 01/08 1 / 6 Een van de krachtigste elementen binnen Visual Basic 2003 vind ik wel de mogelijkheid om objecten te overerven; ook wel inheritance genoemd. U kunt niet alleen uw eigen classes en business objecten overerven,

Nadere informatie

Een gelinkte lijst in C#

Een gelinkte lijst in C# Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Programmeren in C# Interfaces. Hoofdstuk 23

Programmeren in C# Interfaces. Hoofdstuk 23 Programmeren in C# Interfaces Hoofdstuk 23 Programmeren in C# 2 Gradaties overerving Klassieke overerving Iets functioneels uitbreiden Code duplicatie Niet teveel aanpassingen aan bestaande code Objecten

Nadere informatie

1 Werken met (keuze)lijstjes: de control listbox

1 Werken met (keuze)lijstjes: de control listbox 1 Werken met (keuze)lijstjes: de control listbox 1.1 Keuzelijstjes: wat en waarom In een educatief programma wordt vaak gebruik gemaakt van keuzelijstjes. Enkele voorbeelden: * bij het opstarten van een

Nadere informatie

Dieper in Visual Basic.Net

Dieper in Visual Basic.Net Visual Basic.NET Dieper in Visual Basic.Net 7.1 Inleiding Dit hoofdstuk is bedoeld om je wat handiger te maken in het programmeren in Visual Basic. Je leert geen nieuwe programmeervaardigheden, maar je

Nadere informatie

vbg.vbnet.beginner Foutafhandeling binnen Visual Basic.NET

vbg.vbnet.beginner Foutafhandeling binnen Visual Basic.NET Fouten in software zijn onwenselijk, maar bijna niet te voorkomen. Er zijna namelijk zaken waar uw software geen invloed op uit kan oefenen. Het verbreken van een netwerkverbinding is een voorbeeld hiervan.

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren

Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Met een LightSwitch applicatie een OData service uit de Windows Azure Marketplace consumeren Om eens wat ervaring op te doen met de Windows Azure Marketplace heb ik een publieke en gratis databron gekozen

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Dergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen.

Dergelijke functionaliteit kunnen we zelf ook aan eigen code toevoegen. Indexers in C#.Net In deze tutorial ga ik het hebben over indexers. Bij het gebruik van bijvoorbeeld een ArrayList object, kan je de gegevens uit deze collectie opvragen als ware het een array. // ArrayList

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49

Stacks and queues. Introductie 45. Leerkern 45. Terugkoppeling 49. Uitwerking van de opgaven 49 Stacks and queues Introductie 45 Leerkern 45 6.1 Stacks 45 6.2 Queues 47 6.3 Double-ended queues 48 Terugkoppeling 49 Uitwerking van de opgaven 49 Bijlage: Diagrammen belangrijkste interfaces en klassen

Nadere informatie

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel:

Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: Eenvoudig voorbeeld. Er wordt verondersteld dat er met VS 2008 EXPRESS gewerkt wordt. Voor de database wordt een Access 2000 bestand gebruikt, met voorlopig 1 tabel: (Sommige schermafdrukken zijn afkomstig

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

Maak een pivot uit een Generic.List

Maak een pivot uit een Generic.List Maak een pivot uit een Generic.List Introductie in extensions, reflection en code generation Nivo: 400 Introductie In bepaalde gevallen komt het voor dat je een Generic.List van een specifieke class hebt,

Nadere informatie

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal. 4. Array s Een array is een geïndexeerde variabele. Deze zin zal de nodig vragen oproepen, waarop enige uitleg van toepassing is. Met variabelen hebben we al kennis gemaakt. In een variabele kun je iets

Nadere informatie

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

Nadere informatie

Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP

Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP Auteur, VBcentral.nl Microsoft MVP Visual Basic VP Speakers Bureau INETA Europe - www.europe.ineta.org www.vbcentral.nl - www.obelink.com

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));

Nadere informatie

Waarom Access. In de onderstaande afbeelding ziet u een begin van de lijst met cliëntgegevens van de diëtiste.

Waarom Access. In de onderstaande afbeelding ziet u een begin van de lijst met cliëntgegevens van de diëtiste. Waarom Access Voor velen is het verschijnsel van de relationele database een brug te ver. Voor het opslaan en analyseren van gegevens neemt men zijn toevlucht tot Excel. Excel heeft inderdaad een uitgebreid

Nadere informatie

Hoofdstuk 5: Functies voor getallen en teksten

Hoofdstuk 5: Functies voor getallen en teksten Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2001 Hoofdstuk 5: Functies voor getallen en teksten

Nadere informatie

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010 Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2009-2010 16 juni, 2010 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief

Nadere informatie

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE...

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE... Inhoudsopgave INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE... 3 1 OOP EN.NET... 11 1.1 Inleiding... 11 1.2 Kwaliteit van een programma... 11 1.2.1 Correctheid en bruikbaarheid... 11 1.2.2 Robuustheid...

Nadere informatie

Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten.

Aan het eind van deze lesbrief wordt uitgelegd wat het nut van OOP is en vind je een aantal oefenopdrachten. Doel van deze lesbrief Deze lesbrief is bedoeld om je op de hoogte te brengen van de basisbegrippen die gangbaar zijn bij object georiënteerd programmeren (OOP). In deze lesbrief kom je korte codefragmenten

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

Cursus Onderwijs en ICT. Programmeren met Visual Basic

Cursus Onderwijs en ICT. Programmeren met Visual Basic Cursus Onderwijs en ICT Jaargang 2, deel 23 (versie 1.0 NL 2-7-2011) Programmeren met Visual Basic door Serge de Beer Inleiding In sommige gevallen biedt het aanbod op de softwaremarkt niet wat je zoekt.

Nadere informatie

Programmeren in Excel VBA. Karel Nijs 2010/09

Programmeren in Excel VBA. Karel Nijs 2010/09 Programmeren in Excel VBA Karel Nijs 2010/09 Leswijze Eerst wat theorie Begeleid met (korte) oefeningen MsExcel 2003 Online hulp: http://www.ozgrid.com/vba/ http://msdn.microsoft.com/en-us/library/sh9ywfdk(vs.80).aspx

Nadere informatie

is eigenlijk overbodig!

is eigenlijk overbodig! Array Declaratie Creatie Opvragen Wijzigen Lengte is eigenlijk overbodig! array: oject dat een rij waarden bevat, met speciale notaties Invoegen Achtervoegen String [ ] a; a = new String[10]; a[5] a[5]

Nadere informatie

Je hoeft je maar met twee bestanden bezig te houden:

Je hoeft je maar met twee bestanden bezig te houden: 1 2 3 Deze set Sushi Kaarten leert je hoe je een web-app maakt met een nogte-doen lijst. Als je op enig moment wilt zien hoe de web-app kan worden, kijk dan op dojo.soy/js-todo. Deze app kun je gebruiken

Nadere informatie

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina.

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina. Gegevens exporteren en bewerken vanuit GRIEL Stap 1. Selecteer de juiste gegevens en download deze 1. Stel het datumfilter in op de gewenste periode. Druk op ververs. 2. Maak met behulp van het filter

Nadere informatie

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent Het relaas van de beginnende programmeur Het hoe en waarom van de assistent 1. Help, mijn code doet niks... Mogelijke oplossingen: Heb je op run geduwd (groene pijltje)? Zolang je niet op 'run' duwt, kent

Nadere informatie

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

Nadere informatie

Foto s up- en downloaden naar en van foto.intranet.vub.ac.be

Foto s up- en downloaden naar en van foto.intranet.vub.ac.be Foto s up- en downloaden naar en van foto.intranet.vub.ac.be Omdat delen een goed idee is, werkt de VUB sinds kort met een fotodatabank. Iedereen die nood heeft aan een foto van de campus, een student,

Nadere informatie

Een website omzetten naar WordPress

Een website omzetten naar WordPress 1 Een website omzetten naar WordPress Er zijn talloze programma s beschikbaar om websites te maken. In de titels Basisgids Websites maken met WordPress en Websites maken met WordPress voor senioren wordt

Nadere informatie

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, 13.00-15.00 uur 1. De situatie die ontstaat door class A : B C D; kan beschreven worden door (a) B is een A (b)

Nadere informatie

Mywebshop Email configuratie. Versie 1.0 Februari 2010. Copyright 2010 Wikit BVBA, alle rechten voorbehouden

Mywebshop Email configuratie. Versie 1.0 Februari 2010. Copyright 2010 Wikit BVBA, alle rechten voorbehouden Mywebshop Email configuratie Copyright 2010 Wikit BVBA, alle rechten voorbehouden Deze handleiding mag gebruikt worden om met behulp van de mywebshop.net infrastructuur een webwinkel/website te bouwen.

Nadere informatie

Hoofdstuk 9: Menu s toevoegen

Hoofdstuk 9: Menu s toevoegen Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, maart 2005 Hoofdstuk 9: Menu s toevoegen 9.0 Leerdoel

Nadere informatie

In deze mannual zal ik het voorbeeld van de Led cube gebruiken maar de principes zijn op alles toepasbaar.

In deze mannual zal ik het voorbeeld van de Led cube gebruiken maar de principes zijn op alles toepasbaar. Parallelle poort interface met Visual basic Waarom dit naslagwerk: Ik was zelf een beginner op dit vlak en heb dagen lopen zoeken naar correcte en up to date info inzake de aansturing van pc naar elektronica

Nadere informatie

Microsoft Excel. It s all about Excel - VBA

Microsoft Excel. It s all about Excel - VBA X Microsoft Excel Stap in de wereld van Visual Basic for Applications (VBA) binnen het Microsoft Office programma Excel. Leer hoe deze programmeertaal precies in elkaar zit en hoe u deze in de dagelijkse

Nadere informatie

Blog-Het gebruik van variabelen in Excel VBA

Blog-Het gebruik van variabelen in Excel VBA Blog-Het gebruik van variabelen in Excel VBA Versie : 2012.01.31.1 (Blog http://www.reinder.eu) Dank voor de leuke reacties op het vorige blog en ook dank voor de kritische noot over het nivo dat de gebruiker

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces. Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de

Nadere informatie

HANDLEIDING Q1600 Fashion

HANDLEIDING Q1600 Fashion HANDLEIDING Q1600 Fashion Pag.: 1 Inhoudsopgave Inleiding...3 Beheer...4 Kleurlijsten beheren...4 Kleurlijst groep aanmaken...6 Kleurlijst groep verwijderen...6 Kleuren (kleurnummers) aanmaken/wijzigen...7

Nadere informatie

Voorgeslacht rapport generator

Voorgeslacht rapport generator Beschrijving Voorgeslacht rapport generator versie 3.5 (16 mei 2006) auteur:berend Meijer De voorgeslacht rapport generator is een sjabloon voor gebruik met het genealogie-programma Aldfaer (www.aldfaer.nl).

Nadere informatie

van PSD naar JavaScript

van PSD naar JavaScript 2015 van PSD naar JavaScript F. Vonk versie 2 19-9-2015 inhoudsopgave 1. inleiding... - 2-2. ontwikkelomgeving... - 3-3. programmeerconcepten... - 4 - statement... - 4 - sequentie... - 4 - variabele en

Nadere informatie

Degrande Frederik COMPUTER OVERNEMEN januari 2005

Degrande Frederik COMPUTER OVERNEMEN januari 2005 Een computer via internet overnemen Via internet kun je de bediening van een computer overnemen. Heel handig, als je iemand met een probleem wil helpen of iets wil demonstreren. Soms is het zeer handig

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren

Chris de Kok 223548 TDI 3. Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Chris de Kok 223548 TDI 3 Vak: Software Architectuur Datum: 21-01-2008 Docent: Fons van Kesteren Inhoud Inleiding... 3 Black box / White box... 3 XP... 3 SimpleTest... 3 Eclipse plugin... 4 GroupTest...

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Startgids 061 Nieuw product aanmaken en wijzigen

Startgids 061 Nieuw product aanmaken en wijzigen Startgids 061 Nieuw product aanmaken en wijzigen In deze startgids wordt uitleg gegeven hoe u nieuwe producten kunt aanmaken en wijzigen in de Safe Concept webapplicatie. Inhoud Een nieuw product aanmaken

Nadere informatie

Hoofdstuk 6: Zelf functies maken

Hoofdstuk 6: Zelf functies maken Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 6: Zelf functies maken 6.0 Leerdoel

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Handleiding voor het maken van een online enquête formulier. Google Drive toepassing

Handleiding voor het maken van een online enquête formulier. Google Drive toepassing Handleiding voor het maken van een online enquête formulier. Google Drive toepassing HOGESCHOOL VAN ARNHEM EN NIJMEGEN Februari 2016 Opgesteld door: Jan-Willem Handleiding voor het maken van een online

Nadere informatie

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni 2011 Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar 2010-2011 21 juni 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief

Nadere informatie

Programmeren in C++ Efficiënte zoekfunctie in een boek

Programmeren in C++ Efficiënte zoekfunctie in een boek Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!

Nadere informatie

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur

Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, uur Derde deeltentamen Imperatief programmeren - versie 1 Vrijdag 6 november 2015, 11.00-13.00 uur Schrijf op elk ingeleverd blad je naam. Schrijf op het eerste blad ook je studentnummer en het aantal ingeleverde

Nadere informatie

Opzetten van een evenement

Opzetten van een evenement Opzetten van een evenement Inhoud Begrippenlijst... 3 Voor het evenement... 4 De wizard doorlopen:... 4 Wizard pagina: Welkom bij event-timing.nl... 4 Wizard pagina: Evenement gegevens... 4 Wizard pagina:

Nadere informatie

Je email-programma configureren

Je email-programma configureren Email configureren 1 Je email-programma configureren Om de tweede belangrijke functie van het Internet te kunnen gebruiken moeten we onze email configureren. Er zijn ook hier verschillende programma s

Nadere informatie

Opgaven. Python Assessment

Opgaven. Python Assessment Opgaven Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Inleiding Met dit assessment kun je controleren of je voldoende parate kennis over Python hebt om te beginnen

Nadere informatie

QUESTI OPSTARTGIDS ALGEMENE INSTELLINGEN EN LVS

QUESTI OPSTARTGIDS ALGEMENE INSTELLINGEN EN LVS 01 - WELKOM BIJ QUESTI Welkom bij Questi. Alvorens je opstart, willen we je graag attent maken op enkele zaken. Voor je op de knop inloggen klikt, bekijk je best even de algemene filmpjes onder de knop

Nadere informatie

Bitrix Site Manager gebruikershandleiding BureauZuid

Bitrix Site Manager gebruikershandleiding BureauZuid Bitrix Site Manager gebruikershandleiding BureauZuid Introductie Deze gebruikershandleiding geeft gedetailleerde basisinformatie over hoe te werken met Bitrix Site Manager. Deze handleiding is bedoeld

Nadere informatie

Online c++ leren programmeren:

Online c++ leren programmeren: Online c++ leren programmeren: Inhoud 1)Waar vind ik een c++ compiler?... 2 2)Hoe start ik een programma in c++?... 2 3)Een eerste c++ programma:... 3 Een eerste programma schrijven:... 3 Mijn eerste programma

Nadere informatie

3. Structuren in de taal

3. Structuren in de taal 3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we

Nadere informatie

Datum, Tijd en Timer-object

Datum, Tijd en Timer-object IX. Datum, Tijd en Timer-object A. Hoe worden tijd en datum in VB aangeduid? Zowel datum als tijd worden als een getal met decimalen opgeslagen. Het gedeelte voor de komma geeft de datum aan, het gedeelte

Nadere informatie

NAAM: Programmeren 1 Examen 29/08/2012

NAAM: Programmeren 1 Examen 29/08/2012 Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je

Nadere informatie

Manual e-mail. Aan de slag. in beroep en bedrijf. Manual e-mail

Manual e-mail. Aan de slag. in beroep en bedrijf. Manual e-mail Aan de slag in beroep en bedrijf Branche Uitgevers 1 Alle rechten voorbehouden. Niets uit deze uitgave mag worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand dan wel openbaar gemaakt

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Programmeermethoden NA. Week 6: Lijsten

Programmeermethoden NA. Week 6: Lijsten Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal

Nadere informatie

Gebruikershandleiding GO search 2.0

Gebruikershandleiding GO search 2.0 Gebruikershandleiding GO search 2.0 1 Gebruikershandleiding Product: GO search 2.0 Documentversie: 1.1 Datum: 2 februari 2015 Niets uit deze uitgave mag zonder toestemming van GemeenteOplossingen worden

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord December 17, 2018 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True : gohome () Goed:

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord en Leonie Bosveld December 19, 2016 Vandaag Naar aanleiding van de opdrachten Zelle hoofdstuk 11 Boolean variabelen: niet checken met == Fout: if clicked == True

Nadere informatie

Programmeermethoden NA

Programmeermethoden NA Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder

Nadere informatie

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

Nadere informatie

Support website WATCH

Support website WATCH Support website WATCH Op support.watch-projectbeheer.nl is de support website van WATCH te vinden. Elke klant kan hier inloggen met zijn klantcode en wachtwoord. Figuur 1 WATCH support inlogscherm Na inloggen

Nadere informatie

Afdrukken met Visual Basic 2008

Afdrukken met Visual Basic 2008 Afdrukken met Visual Basic 2008 André Obelink www.maryor.nl www.obelink.com Over mezelf MarYor software & consultancy Auteur van artikelen en boeken Geschreven voor Microsoft.NET Magazine, PC Active, MSDN

Nadere informatie

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, 13.30-15.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Opgaven 1 levert 8 punten op, opgave 2 levert 12 punten

Nadere informatie

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014

HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 HTTP SMS API Technische Specificatie messagebird.com versie 1.1.6-05 mei 2014 1 Inhoudsopgave INHOUDSOPGAVE 2 1 VERBINDING MET DE API 4 1.1 QUICK START 4 2 SMS PARAMETERS 5 2.1 VERPLICHTE PARAMETERS 6

Nadere informatie

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010 6. Query s, macro s en rapporten In dit hoofdstuk zetten we de puntjes op de i. Alle processen zullen in de aangemaakte formulieren met de gebruikersmenu s van de secretaris, penningmeester en wedstrijdsecretaris,

Nadere informatie

Als eerste bedankt voor het aanschaffen van deze PDF waarin ik je handige tips en trucs zal geven over het schrijven van een handleiding.

Als eerste bedankt voor het aanschaffen van deze PDF waarin ik je handige tips en trucs zal geven over het schrijven van een handleiding. Bedankt! Als eerste bedankt voor het aanschaffen van deze PDF waarin ik je handige tips en trucs zal geven over het schrijven van een handleiding. Graag zou ik je willen vragen mij een email te sturen

Nadere informatie

6. Het maken van een database

6. Het maken van een database 6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor

Nadere informatie

5/5 Red Carpet. 5/5.1 Inleiding

5/5 Red Carpet. 5/5.1 Inleiding Management Services 5/5 Red Carpet 5/5.1 Inleiding Met de overname van Ximian is Novell ook eigenaar geworden van de Red Carpet-technologie. Hoewel het aannemelijk is dat het hier een tijdelijke oplossing

Nadere informatie

Handleiding enquetemaken.be

Handleiding enquetemaken.be Hoofdstuk : Starten met je eigen enquête - Registreren - Enquete Maken - Instellingen Hoofdstuk 2 : Opstellen van de vragenlijst - Vragen maken - Vraagtypes - Vragenlijst beheren - Vertakkingen invoeren

Nadere informatie

Handleiding Afdrukken samenvoegen

Handleiding Afdrukken samenvoegen Handleiding Afdrukken samenvoegen Versie: 1.0 Afdrukken Samenvoegen Datum: 17-07-2013 Brieven afdrukken met afdruk samenvoegen U gebruikt Afdruk samenvoegen wanneer u een reeks documenten maakt, bijvoorbeeld

Nadere informatie

6.2 VBA Syntax. Inleiding Visual Basic

6.2 VBA Syntax. Inleiding Visual Basic 6.2 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik op Maken Macro s en Code -

Nadere informatie