Stacks and queues. Hoofdstuk 6
|
|
|
- Brecht van den Brink
- 9 jaren geleden
- Aantal bezoeken:
Transcriptie
1 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 lists gebruikt. Het is van belang dat u tijdens het bestuderen van het hoofdstuk datastructuren en implementaties daarvan goed uit elkaar houdt. Hoofdstuk 6 van het tekstboek behoort tot de leerstof, op de twee volgende facultatieve onderdelen na: paragraaf vanaf Matching tags in a markup language paragraaf vanaf The Josephus problem. LEERDOELEN Na het bestuderen van dit hoofdstuk wordt verwacht dat u de volgende datastructuren in eigen woorden kunt beschrijven: stapel, wachtrij en deque de verschillende implementatievormen van genoemde datastructuren uiteen kunt zetten ADT s voor stapels, wachtrijen en deque s kunt specificeren de verschillen in complexiteit kunt verklaren tussen operaties op stapels, wachtrijen en deques die geïmplementeerd zijn met arrays, enkel- en dubbelgeschakelde lijsten alsmede de verschillen in de ruimtecomplexiteit van aldus geïmplementeerde datastructuren het ontwerppatroon adapter kunt omschrijven. Studeeraanwijzingen In de bijlage vindt u diagrammen van de belangrijkste interfaces en klassen die worden besproken in dit hoofdstuk. Een klasse waarvan de naam niet expliciet in het tekstboek wordt genoemd, maar waarvan wel pseudocode is gegeven of waarvan de implementatie van enkele methoden is gegeven, herkent u aan het afwijkende lettertype in een diagram. De studielast van dit hoofdstuk bedraagt circa 5 uur. Terminologie Engels stack queue double-ended queue, deque adapter pattern Nederlands stapel wachtrij deque adapterpatroon 47
2 Open Universiteit Datastructuren en algoritmen L E E R K E R N 6.1 Stacks THE STACK ABSTRACT DATA TYPE In deze paragraaf wordt de stapel als datastructuur besproken. De ADT Stack wordt in het tekstboek gegeven in paragraaf en in codefragment 6.1 staat de interface Stack die deze ADT in Java specificeert. Merk op dat de interface generiek is gespecificeerd. In de codefragmenten 6.2 en 6.4 uit het tekstboek staan twee verschillende klassen die de interface Stack implementeren. U vindt in deze klassen de methoden terug die in de ADT beschreven zijn en waarvan de signaturen in de interface Stack gespecificeerd zijn. Deze werkwijze zal in de hele cursus gevolgd worden: een datastructuur wordt door middel van een ADT beschreven, vervolgens met een Javainterface-taalconstructie gespecificeerd en door middel van klassen op verschillende manieren geïmplementeerd. In deze paragraaf wordt ook de built-in- klasse java.util.stack vermeld. Omdat een stapel een veelgebruikte datastructuur is, is deze klasse standaard in Java aanwezig. Let op: dit is een klasse, geen interface. In deze klasse wordt een stapel gerealiseerd met behulp van de standaardklasse Vector A SIMPLE ARRAY-BASED STACK IMPLEMENTATION De volgende notatie wordt in het tekstboek gebruikt: N is de maximale ruimte gereserveerd voor een array en n is het aantal elementen bewaard in de datastructuur. Let op: in het tekstboek wijkt de notatie soms af van wat u gewend bent in de voorgaande Java-cursussen. Namen van attributen en variabelen beginnen niet altijd met een kleine letter en een array zoals Object[] S wordt soms genoteerd als Object S[]. Codefragment 6.2 geeft een stack-implementatie die op een array is gebaseerd. We lichten een deel van deze implementatie toe. Het is in Java toegestaan om een array van een geparametriseerd type te declareren, maar het is niet toegestaan om een dergelijke array ook te creëren. Daarom wordt een array van type Object gecreëerd en wordt er een cast aan toegevoegd: data = (E[]) new Object[capacity]; //compiler may give warning but this is ok De compiler zal hier een waarschuwing geven. Deze luidt ongeveer als volgt: Type safety: Unchecked cast from Object[] to E[]. Bij creatie van een stack wordt een actuele type parameter opgegeven en alleen elementen van dit type kunnen met methode push op de stack geplaatst worden. Er worden dus altijd elementen van het juiste type toegevoegd en de cast zal dan ook geen problemen opleveren. 48
3 Hoofdstuk 6 Stacks and queues Voorbeeld We creëren twee stacks, één die alleen gehele getallen kan bevatten, en één die alleen Strings kan bevatten, en voegen aan beide stacks enkele elementen als volgt toe: ArrayStack<Integer> intstack = new ArrayStack<Integer>(); ArrayStack<String> stringstack = new ArrayStack<String>(); intstack.push(new Integer(3)); intstack.push(new Integer(-1)); intstack.push( aap ); // dit geeft een compiler fout!! stringstack.push( aap ); stringstack.push( noot );; stringstack.push(new Integer(3)); // compiler fout!! OPGAVE 6.1 Maak opgave R-6.3 uit het tekstboek MATCHING PARENTHESES AND HTML TAGS In deze paragraaf worden twee voorbeelden van het gebruik van een stack gegeven. Het tweede voorbeeld behoort niet tot de leerstof. 6.2 Queues A SIMPLE ARRAY-BASED IMPLEMENTATION De klasse ArrayQueue van codefragment 6.8 is een implementatie van een wachtrij. Deze implementatie van de wachtrij maakt gebruik van een circulaire array van grootte capacity. In tabel 6.1 ziet u diverse operaties op een circulaire array van Integers van grootte 4. TABEL 6.1 Operaties op een circulaire array van grootte 4 operatie waarde van f,( avail) en sz array f=0, sz=0 enqueue(2) f=0, avail=0, sz=1 2 enqueue(4) f=0, avail=1, sz=2 2 4 dequeue() f=1, sz=1 4 enqueue(1) f=1, avail=2, sz=2, 4 1 enqueue(5) f=1, avail=3, sz= dequeue() f=2, sz=2 1 5 enqueue(3) f=2, avail=0, sz= dequeue() f=3, sz=2 3 5 dequeue() f=0, sz=1 3 dequeue() f=1, sz=0 OPGAVE 6.2 Beschrijf hoe de queue ADT geïmplementeerd kan worden met behulp van 2 stapels. Wat is in dit geval de verwerkingstijd van de operaties enqueue en dequeue? 49
4 Open Universiteit Datastructuren en algoritmen IMPLEMENTING A QUEUE WITH A SINGLY LINKED LIST OPGAVE 6.3 Maak opgave C-6.19 uit het tekstboek. Wat is de verwerkingstijd van uw algoritme? 6.3 Double-ended queues OPGAVE 6.4 De klasse ArrayDeque implementeert de ADT Deque met behulp van een niet-circulaire array van grootte N. Geef voor elke methode van ArrayDeque een algoritme in pseudo-code. 50
5 Hoofdstuk 6 Stacks and queues T E R U G K O P P E L I N G Uitwerking van de opgaven 6.1 Het bijzondere probleem is een lege stack, het algemene probleem is op te lossen door het bovenste element van de stack te halen en vervolgens methode clear aan te roepen op de kleinere stack: public void clear(stack s) { if (s.isempty() { // doe niets } else { s.pop(); clear(s); } } 6.2 De ADT Queue wordt geïmplementeerd met behulp van de twee stapels S en S'. Voor de operatie enqueue wordt het element op de stapel S geplaatst. De complexiteit van deze operatie komt overeen met de complexiteit van de operatie push. De complexiteit van methode push is voor beide stackimplementaties (met een array en met een geschakelde lijst) O(1). Voor de operatie dequeue worden eerst alle elementen van de stapel S gehaald met de operatie pop en op de stapel S' geplaatst met de operatie push. Dan wordt de top van S' en dat is het laatste element van S van die stapel gehaald met een operatie pop. Daarna worden alle resterende elementen van S' gehaald met de operatie pop en op S teruggeplaatst met de operatie push. Per element worden dus de volgende operaties uitgevoerd: S.pop, S'.push, S'.pop en S.push. Deze vier operaties zijn elk O(1), onafhankelijk van de gekozen stackimplementatie. Daardoor is de complexiteit van de operatie dequeue O(n), zelfs Θ(n), waarbij n het aantal elementen van de wachtrij is. 6.3 Haal een element van de stapel S, vergelijk het element met de gezochte x Als het element niet het gezochte is, plaats dan het element in de wachtrij en herhaal dit totdat x is gevonden of totdat S leeg is. Nu is bekend of x voorkwam in S, maar S zelf is ook gewijzigd en moet nog in de oorspronkelijke staat gebracht worden. Vraag daarom de grootte van de wachtrij Q op en bewaar deze in een variabele m. Zet alle elementen van Q terug op S. De elementen die terug op de stapel zijn geplaatst, staan nu in de verkeerde volgorde. Haal daarom de eerste m elementen nogmaals van de stapel S, zet ze in de wachtrij Q en zet ze daarna weer terug op S. Ze staan dan in de juiste volgorde. In het slechtste geval wordt het element x niet gevonden en worden alle n elementen één voor één uit S gehaald en in Q geplaatst, daarna worden ze één voor één uit Q gehaald en op S geplaatst, waarna de hele procedure zich nog één keer herhaalt. Elk element wordt in totaal dus twee keer van de stapel gehaald, twee keer op de stapel gezet, twee keer in de 51
6 Open Universiteit Datastructuren en algoritmen wachtrij gezet en twee keer uit de wachtrij gehaald. Methoden push, pop, enqueue en dequeue zijn allemaal O(1) (dit is onafhankelijk van de implementatie van de stapel en de wachtrij). De complexiteit is dan ook O(n). We kunnen hier niet spreken van Θ(n), omdat het algoritme wel sneller uitgevoerd kan worden; dit is het geval als het element snel wordt gevonden. 6.4 De klasse ArrayDeque heeft twee attributen: een array D van grootte N die de elementen van de deque bewaart, en de lengte van de deque size. Algorithm addfirst(e) for i size 1 to 0 do D[i + 1] D[i] { end for } D[0] e size++ Algorithm addlast(e) D[size] e size++ Algorithm removefirst() hulp D[0] for i 1 to size 1 do D[i 1] D[i] { end for } size return hulp Algorithm removelast() hulp D[size 1] size return hulp Algorithm first() return D[0] Algorithm last() return D[size 1] Algorithm size() return size Algorithm isempty() return (size == 0) 52
7 Hoofdstuk 6 Stacks and queues Bijlage Diagrammen belangrijkste interfaces en klassen 1 Stacks FIGUUR 6.1 Diagram bij ADT Stack 2 Queues FIGUUR 6.2 Diagram bij ADT Queue 53
8 Open Universiteit Datastructuren en algoritmen 3 Deques FIGUUR 6.3 Diagram bij ADT Deque 54
Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40
Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N
recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie
Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk
IMP Uitwerking week 13
IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
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));
voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is
PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
Inhoud. Eindtoets. Introductie 2. Opgaven 3. Bijlage bij opgaven 9. Terugkoppeling 12
Open Universiteit Inhoud Introductie 2 Opgaven 3 Bijlage bij opgaven 9 Terugkoppeling 12 1 Open Universiteit Objectgeoriënteerd programmeren in Java 1 I N T R O D U C T I E Deze eindtoets is bedoeld als
Lineaire data structuren. Doorlopen van een lijst
Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn
Datastructuren Uitwerking jan
Datastructuren Uitwerking jan 2015 1 1a. Een abstracte datastructuur is een beschrijving van een datastructuur, met de specificatie van wat er opgeslagen wordt (de data en hun structuur) en welke operaties
Programmeren in Java 3
26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class
Modulewijzer Tirdat01
Modulewijzer Tirdat01 W. Oele 25 augustus 2008 1 Inhoudsopgave 1 Inleiding en leerdoelen 3 2 Voorkennis 3 2.1 tirprg01 en tirprg02........................ 3 2.2 tirprg03.............................. 4
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten
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
Datastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 11 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Heaps en heapsort Heap 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 16 14 10 8 7 9 3
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde
Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46
Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft
Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale
Design patterns Startbijeenkomst
Design patterns Startbijeenkomst Harrie Passier Docenten Sylvia Stuurman (1 e examinator) [email protected] Harrie Passier (2 e examinator) [email protected] Aarzel niet vragen te stellen! Rooster
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Datastructuren en algoritmen
Datastructuren en algoritmen Doelstelling Datastructures + algorithms = programs Boek van Niklaus Wirth: bedenker Pascal en Modula Datastructuur: structuur om informatie op te slaan Algoritme: voorschrift
Inhoud introductie. Introductie tot de cursus
Inhoud introductie Introductie tot de cursus 1 Plaats en functie van de cursus 7 2 Inhoud van de cursus 8 2.1 Voorkennis 8 2.2 Leerdoelen 8 2.3 Opbouw van de cursus 9 2.4 Leermiddelen 9 3 Tentaminering
Datastructuren Werkcollege Intro
Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs
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
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
Datastructuren en Algoritmen voor CKI
Ω /texmf/tex/latex/uubeamer.sty-h@@k 00 /texmf/tex/latex/uubeamer.sty Datastructuren en Algoritmen voor CKI Vincent van Oostrom Clemens Grabmayer Afdeling Wijsbegeerte Hoorcollege 5 16 februari 2009 Waar
Bouwstenen voor PSE. Datatypes en Datastructuren
Bouwstenen voor PSE Datatypes en Datastructuren Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie
Tentamen in2705 Software Engineering
Tentamen in2705 Software Engineering Voorbeeld (bijna tweemaal te groot) U mag meenemen naar dit tentamen: Lethbridge, afdrukken PPT slides, afdrukken handouts. 1. De TU wil een nieuw systeem ontwikkelen
Introductie in C++ Jan van Rijn. September 2013
Introductie in C++ Jan van Rijn September 2013 Inhoud Classes Overerving Const correctness Standard C++ library Templates Classes Voordelen van classes: Modelleren Modulariteit Informatie afschermen Makkelijk(er)
Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft
I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit
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
Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit
Vergelijking Oracle certificering voor Java en het CPP Gecertificeerd Javaprogrammeur van de Open Universiteit Inleiding Op het gebied van scholing van de taal Java zijn er vele aanbieders op de markt.
Genetische algoritmen in Java met JGAP
Genetische algoritmen in Java met JGAP Inleiding JGAP, uitgesproken als "jee-gep", is een framework voor het implementeren van genetische algoritmen en het gebruik ervan in Java. Genetische algoritmen
Datastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Priority queue Priority queue ADT insert(q, x): voeg element x toe aan de queue maximum(q):
Tentamen Imperatief Programmeren
Tentamen Imperatief Programmeren Maandag 22 oktober 2001 Toelichting Dit is een open boek tentamen, d.w.z. het cursusboek mag gebruikt worden. N.B.: Het tentamen is individueel: voor het maken van de opgaven
Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2
Modelleren Werkelijkheid Modelleren Modeleren Waarvan maken we een model?!analyse " Maak een model van de te automatiseren werkelijkheid of van het op te lossen probleem! Domeinkennis = structuur! Functionele
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
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code
Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.
Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Gesloten boek examen: er mag geen gebruik worden gemaakt van het studieboek.
Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.
Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze
Elementary Data Structures 3
Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer
Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
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)!
Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction
Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic
Scala. Korte introductie. Sylvia Stuurman
Korte introductie Sylvia Stuurman Wat is er zo bijzonder aan? Schaalbaar Objectgeoriënteerd (handiger dan Java!) Functioneel Scripts schrijven Gecompileerd: Java bytecode Pagina 2 voor scripts Pagina 3
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
Ontwerp van Informatiesystemen
1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents
Datastructuren en Algoritmen
Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen
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,
Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra
Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten
Abstracte klassen & Interfaces
Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.
TENTAMEN Programmeren 1 VOORBEELDUITWERKING
TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding
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
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
Uitleg van de Hough transformatie
Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een
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
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
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89.
Inhoud leereenheid 7c JavaScript: Objecten en functies Introductie 59 Leerkern 60 1 Functies 60 1.1 Syntax - samenvatting 60 1.2 Functies definiëren 61 1.3 Functie als parameter (facultatief) 64 1.4 Functie
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Zelftest Programmeren in Java
Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test
Modelleren en Programmeren
Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in
Inhoud. Introductie tot de cursus
Inhoud Introductie tot de cursus 1 De functie van de cursus 7 2 De inhoud van de cursus 7 2.1 Voorkennis 7 2.2 Leerdoelen van de cursus 8 2.3 Opbouw van de cursus 8 3 Leermiddelen en wijze van studeren
Java Programma structuur
Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,
Algoritmiek. 2 februari Introductie
College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet [email protected] assistent werkcollege: Bart van Strien [email protected] website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/
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
Stap 1 Eenvoudig tekenprogramma maken In eerste instantie alleen 'freehand' curves Demo in de les
Tekenen in Java Doel Stap 1 Eenvoudig tekenprogramma maken In eerste instantie alleen 'freehand' curves Demo in de les Stap 2 Tekening opslaan op file en weer teruglezen Demo in de les Stap 3 Rechthoeken,
Opgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017.
Opgaven Abstracte Datastructuren Datastructuren, Werkgroep, 31 mei 2017. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes
Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing
Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,
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
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
Datastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Organisatie Website Vakwebsite: http://www.cs.uu.nl/docs/vakken/ki2v12009/ Bevat alle
Oefeningen Jaarproject I
Oefeningen Jaarproject I Deze oefeningenreeks behandelt de grafische Scheme bibliotheek die jullie mogen gebruiken voor de implementatie van het Pacman spel. De bibliotheek i is een evaluator voor Scheme
Pythoncursus. Eindopdracht L-systemen. Joost, Koen, Marein en Ramon december 2015
Pythoncursus Eindopdracht L-systemen Joost, Koen, Marein en Ramon december 2015 Samenvatting Dit is de eindopdracht van deze cursus. Hij bestaat uit een aantal onderdelen. Als je minimaal onderdeel a,
Dynamisch Programmeren. Het Rugzakprobleem
INLEIDING Dynamisch Programmeren 1 Dynamisch Programmeren Section Page Inleiding................................................. 1 1 Oplossing................................................ 2 2 Subprobleem.............................................
Programmeertechnieken Week 7
Programmeertechnieken Week 7 Tim Cocx, Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/pt2017/ "Confidence in Code" "Ons programma / onze module is af, maar hoe weten we nu of alles werkt?"
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
