Practicumopgave 3: SAT-solver

Maat: px
Weergave met pagina beginnen:

Download "Practicumopgave 3: SAT-solver"

Transcriptie

1 Practicumopgave 3: SAT-solver Modelleren en Programmeren 2015/2016 Deadline: donderdag 7 januari 2016, 23:59 Introductie In het vak Inleiding Logica is onder andere de propositielogica behandeld. Veel problemen en vraagstukken kunnen als formule in propositielogica worden uitgedrukt, waardoor het beantwoorden van het vraagstuk is gereduceerd tot de vraag of de formule vervulbaar is (en zo ja, onder welke valuatie). Een voorbeeld daarvan is het oplossen van een sudoku. In deze opgave gaan jullie formules uit de propositielogica representeren en een SAT-solver schrijven die bovenstaande vraag oplost. De invoer van een SAT-solver is dus een formule, en de uitvoer is het antwoord op de vraag of de formule vervulbaar is, en indien ja een valuatie die de formule waar maakt. Als er meerdere valuaties zijn die de formule waar maken, bijvoorbeeld omdat de formule een tautologie is, mag een SAT-solver een willekeurige valuatie geven. Uiteindelijk zullen jullie deze gebruiken om een sudoku op te lossen met jullie eigen SAT-solver! We gaan in deze opgave kijken naar formules met 3 connectieven: negatie (niet), conjunctie (en) en disjunctie (of). Omdat de standaard tekenset waar we mee werken de gebruikelijke symbolen niet bevat, gebruiken we - (minteken) voor negatie, /\ (slash en backslash) voor conjuctie en \/ (backslash en slash) voor disjunctie. Ook schrijven we rond elke formule met een disjunctie of conjuctie haakjes. Een voorbeeld van zo n formule is: (p /\ (-p \/ -q)) In woorden zouden we dit uitspreken als p en (korte stilte) niet p of niet q. Deze formule is waar onder de valuatie waarbij p waar is en q onwaar is. Startpakket Om te beginnen krijg je een deel van de code erbij, dit bestaat uit de volgende bestanden. Parser.java: Helper klasse om vanuit een String of bestand een formuleobject te maken. De code is nog net niet helemaal af en zal in opdracht 2 compleet gemaakt moeten worden zodat deze werkt. 1

2 Valuatie.java: Klasse om een valuatie als object te representeren. De implementatie hoef je verder niet te begrijpen, maar het is wel belangrijk om goed te kijken welke methoden deze klasse heeft en waar die voor gebruikt kunnen worden. Sudoku.java: Code om de formules te genereren voor onze SAT-solver vanuit sudoku s, aangepast naar het formaat dat wij gebruiken, zodat we deze kunnen gebruiken als invoer. LegeSudoku.txt: Formule voor de lege sudoku. MakkelijkeSudoku.txt: Formule voor een vrij makkelijke sudoku, die aan het einde van de opdracht door je code opgelost zou moeten kunnen worden. MoeilijkeSudoku.txt: Formule voor de een moeilijke sudoku die we met de standaard opdrachten uit deze opgave niet (snel) kunnen oplossen (maar misschien met de bonus wel). Opdrachten Lees eerst de gehele opgave goed door zodat je een overzicht hebt van wat er verwacht wordt. Maak daarna de volgende opdrachten en voeg een main toe om te testen of het allemaal nog werkt. Als je (tijdelijk) vastloopt zouden de opdrachten 2, 3 en 4 eventueel andere volgorde gemaakt kunnen worden omdat ze niet van elkaar afhangen 1. Representatie Als eerste zul je code moeten toevoegen om formules te representeren. Deze bestaat om te beginnen uit een interface Formule, waar je later methoden aan toe kunt voegen maar die je nu nog even leeg kunt laten. Voeg klassen toe om de verschillende formules als object te kunnen representeren en zorg dat deze de Formule interface implementeren. Denk goed na over de velden die elke klasse moet hebben; een conjuctie bestaat bijvoorbeeld uit twee andere formules. En wat is de meest simpele formule die je kunt bedenken? Ook daarvoor zul je een losse klasse moeten hebben. Zorg ook dat je klassen handige constructors hebben om nieuwe instanties aan te kunnen maken. Vul dan in de main de code in om een representatie van de voorbeeldformule te maken. Als je de constructors en klassenamen handig hebt gekozen zou dit niet zo moeilijk moeten zijn! Voeg ook een tostring-methode toe om je formule weer naar een String om te zetten, en zorg dat de uitvoer exact gelijk is aan het voorbeeld. 2. Parser Maak de Parser implementatie compleet door de vier methoden onderaan in te vullen. Als dit gedaan is hoef je niet meer handmatig de representatie voor elke formule te programmeren maar kun je deze automatisch door de Parser laten genereren. Dit is wel zo makkelijk, 2

3 zeker voor grotere formules. Je kunt deze testen door een van de gegeven tekst-bestanden te parsen en de verkregen formule naar het scherm te printen. Dit is een hele grote formule, maar als dit succesvol is dan is de code waarschijnlijk correct! 3. Variabelen verzamelen De aanpak die we nemen om uiteindelijk een valuatie te vinden, komt neer op het een voor een proberen van waardes voor de variabelen. Om dit voor elkaar te krijgen zullen we eerst van een gegeven formule moeten uitvinden welke variabelen er eigenlijk in zitten. Voeg een methode verzamel toe aan de Formule interface, die als argument een TreeSet<String> neemt. Deze methode heeft geen resultaat, maar voegt alle variabelen uit de formule toe aan de gegeven set. Omdat het argument een object is wordt call-by-reference gebruikt en heeft het toevoegen van een variabele aan die set dus gevolgen buiten de functie. Hierdoor zullen, als het goed is, na aanroep van deze methode alle variabelen die formule voorkomen aan de set zijn toegevoegd. Maar door het gebruik van TreeSet zit elk er precies één keer, wat we graag willen. Voeg ook code toe aan de main om dit te testen. Je zult dan dus eerst een nieuwe TreeSet<String> moeten aanmaken, dan de verzamel-methode moeten aanroepen met de set als argument (voor een bepaalde formule), en dan de elementen in de set moeten printen. Je kunt dan zelf controleren of alle variabelen uit de formule inderdaad voorkomen. 4. Kan formule waar/onwaar zijn Een slimme truc die we toepassen om straks snel een valuatie te kunnen vinden die de formule waar maakt is om tussendoor een controle te doen waarmee we, in sommige gevallen, met zekerheid kunnen vaststellen dat we op een dood spoor zitten. In andere woorden, als we in een geval zitten waarin we nog niet voor alle variabelen een waarde hebben gekozen, kan het zijn dat we zeker weten dat we de formule nooit meer vervullen, en dus heeft het dan ook geen zin meer om nog waarden voor de rest van de variabelen te proberen; we zullen onze eerdere keuzes moeten herzien. Als voorbeeld, voor de formule uit de introductie weten we bijvoorbeeld zeker dat als we p als onwaar kiezen de formule nooit meer waar kan zijn, ongeacht de waarde van q. Dit weten we doordat een conjunctie alleen waar kan zijn als beide kanten waar zijn, en de linkerkant (de formule p) kan nooit meer waar zijn. Maar het is een benadering (om het simpel te houden): als deze methode waar teruggeeft betekent dat niet per se dat de formule vervulbaar is. Bijvoorbeeld als we voor de formule uit de introductie testen voor q is waar, dan kan zowel de linkerkant van de conjunctie waar zijn (wanneer p waar is) als de rechterkant (wanneer p onwaar is), dus we zeggen dat de formule nog waar kan zijn, terwijl voor geen van de opties voor p de formule waar is. Voeg twee methoden toe aan de Formule interface die controleert of een formule nog waar (respectievelijk onwaar) zou kunnen zijn, en implementeer deze voor alle klassen die Formule implementeren. Voor variabelen 3

4 hangt deze waarde dus af van de valuatie; als de variabele in de valuatie voorkomt weten we zeker of de formule waar (onwaar) kan zijn, en zo niet kunnen beide opties nog. Voor elk van de drie connectieven hangt deze waarde af van het resultaat van deze methoden van de formule(s) waaruit deze is opgebouwd. 5. SAT-solver Deze opdracht, die de kern is van de hele opgave, gaat erom om met behulp van de eerdere opdrachten een valuatie te vinden die de gegeven formule waar maakt, oftewel de SAT-solving. Het idee is dat we met behulp van recursie alle mogelijkheden afgaan: we proberen voor elke variabele true en false en gaan zo alle mogelijkheden af. Er zijn alleen heel erg veel mogelijkheden: in een formule met n verschillende variabelen zijn er 2 n mogelijkheden. Dat is voor een formule met maar 10 verschillende variabelen al meer dan 1000 mogelijkheden! Om te zorgen dat onze code niet alle mogelijkheden hoeft te proberen gebruiken we de slimme truc uit opdracht 4. Elke keer als we een waarde voor een variabele kiezen controleren we of de formule in principe nog vervuld zou kunnen worden. Zo niet, dan weten we dat de keuzes die we tot nu toe gemaakt hebben in combinatie nooit een oplossing gaan opleveren, en dus hoeven we alle combinaties van waarden die we nog niet gekozen hebben niet meer te proberen. Dit kan een heel groot verschil maken! Het algoritme dat we gebruiken voor de SAT-solving wordt hieronder beschreven. We beginnen met eerst één keer alle variabelen te verzamelen, en daarna recursief voor elke variabele beide opties te proberen en door te gaan, net zo lang tot we voor elke variabele een keuze hebben gemaakt en de formule nog steeds vervulbaar kan zijn. Het mooie van de code uit opdracht 4 is dat in het geval dat de valuatie wel alle variabelen bevat, dat de methode voor die valuatie de waarheidswaarde oplevert. In dat geval hebben we dus een oplossing gevonden. Programmeer dit als volgt, informeel beschreven in wat ook wel pseudocode wordt genoemd: vervulbaar(f): vars = alle variabelen uit f return vervulbaarrecursief(f, vars, lege valuatie) vervulbaarrecursief(f, vars, val): if(vars is leeg): // Dit is een oplossing return val var = kies variabele uit vars verwijder var uit vars // Probeer var = true 4

5 voeg var = true toe aan val if(f kan nog waar zijn voor val): resultaat = vervulbaarrecursief(f, vars, val) if(resultaat!= null): return resultaat verwijder var uit val // Probeer var = false voeg var = false toe aan val if(f kan nog waar zijn voor val): resultaat = vervulbaarrecursief(f, vars, val) if(resultaat!= null): return resultaat verwijder var uit val // Geen oplossing gevonden voeg var weer toe aan vars return null De methode vervulbaar geeft nu een valuatie terug als er een oplossing gevonden is, en anders null. Als dit gelukt is, probeer dan eerst of je code werkt voor de voorbeeldformule. Als dat werkt kun je door met de sudoku s: hoe snel je code is hangt sterk af van de volgorde waarop de variabelen gekozen worden. Als je de variabelen met een TreeSet verzameld hebt en je elke keer het eerste element kiest als volgende variabele, dan zullen de variabelen op alfabetische volgorde geprobeerd worden wat voor de lege sudoku erg efficient is. Deze zou dan ook binnen enkele seconde een resultaat moeten geven. Voor de makkelijke sudoku zal dit wat langer duren, maar met bovenstaande methode toch niet meer dan enkele minuten. Dat lijkt misschien wat traag, maar bedenk dat je dus een hele algemene SAT-solver hebt geschreven die nog veel meer kan oplossen, en die ook nog eens zo snel is dat hij sudoku s kan oplossen sneller dan dat jij dat met de hand kunt! Een behoorlijk goede prestatie. En bedenk ook dat er maarliefst 729 variabelen in de formule voor deze sudoku zitten, waardoor het aantal mogelijke valuaties voor deze formule een getal is dat uit 220 cijfers bestaat... Er is ook nog een moeilijke sudoku gegeven, maar die duurt waarschijnlijk veel (maar dan ook echt veel) langer met de code die je tot nu toe hebt. Als bonusopgave kun je proberen om je code zo te optimaliseren dat ook deze snel kan worden opgelost, maar het is de vraag of dat lukt. 5

6 Bonusopdrachten Voor de wat meer gevorderde studenten zijn er nog twee bonusopgaven te doen om het cijfer te verhogen. Zonder deze opdrachten te maken is het mogelijk om een 10 te halen, maar de bonusopdrachten kunnen gebruikt worden om kleine fouten in de overige opgaven te compenseren. Daarnaast is het een goede oefening om je Javakennis te vergroten. Sudoku-constructie De Sudoku klasse bouwt nu een String op die we later weer parsen, maar het zou natuurlijk beter zijn om direct een object aan te maken dat de formule representeert. Pas de code van de Sudokuklasse zo aan dat dit op die manier gedaan wordt. Slimmere zoekstrategie Zoals gezegd maar de volgorde van keuze van variabelen in de recursieve zoekstrategie heel erg veel uit. Veel onderzoek binnen de SAT-solving gaat dan ook over het slim kiezen van de volgende variabele. Een van de trucs is de volgende: in sommige gevallen zijn er variabelen die nog niet in je valuatie zitten die nog maar één mogelijke waarde kunnen hebben, en in dat geval is het altijd slim om die variabelen vast te leggen. Probeer dit te implementeren om je code in veel gevallen een stuk efficienter te maken. Maar andere slimme trucs die goed werken worden ook aangemoedigd! Als je een bonusopdracht maakt, meldt dit dan in het commentaar. Inleveren De opgave dient alleen of in tweetallen gemaakt te worden. Code van andere(n) (tweetallen) bekijken of overnemen of code delen met andere(n) (tweetallen) is uitdrukkelijk niet toegestaan. Het programma moet worden geschreven in Java en moet draaien op de practicummachines. De code moet worden ingeleverd via Submit, zie de practicumpagina 1 op de vakwebsite voor meer informatie. De code wordt beoordeeld op de volgnde criteria: leesbaarheid (maximaal 5 punten aftrek) correctheid (maximaal 10 punten aftrek) runbaarheid (niet runbaar, niet hoger dan een 5) stijl (bv redundantie) correctheid voor randgevallen motiveer steeds, in het commentaar, ontwerpbeslissingen die je neemt 1 6

Modelleren en Programmeren voor KI

Modelleren en Programmeren voor KI Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver Tomas Klos Het SAT probleem Parvulae Logicales: Propositielogica, Hoofdstuk 6 (Semantiek), p. 62: Het SAT probleem Ik geef je een propositielogische

Nadere informatie

Modelleren en Programmeren

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

Nadere informatie

Inleiding logica Inleveropgave 3

Inleiding logica Inleveropgave 3 Inleiding logica Inleveropgave 3 Lientje Maas 30 september 2013 Ik (Rijk) heb verbeteringen in rood vermeld. Deze verbeteringen meegenomen zijn dit correcte uitwerkingen van de derde inleveropgaven. 1

Nadere informatie

Modelleren en Programmeren

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

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 9 december 2015 Foreach String arrays Boomstructuren Interfaces Ingebouwde datastructuren Quiz Foreach Foreach Speciale versie van for om iets voor alle elementen

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

Mededelingen. TI1300: Redeneren en Logica. Metavariabelen Logica, p Minder connectieven nodig

Mededelingen. TI1300: Redeneren en Logica. Metavariabelen Logica, p Minder connectieven nodig Mededelingen TI1300: Redeneren en Logica College 5: Semantiek van de Propositielogica Tomas Klos Algoritmiek Groep Tip: Als ik je vraag de recursieve definitie van een functie over PROP op te schrijven,

Nadere informatie

Elke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.

Elke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten. Versie 16 januari 2017 Sorteren unplugged Sorteren gebeurt heel veel. De namen van alle leerlingen in de klas staan vaak op alfabetische volgorde. De wedstrijden van een volleybal team staan op volgorde

Nadere informatie

Programmeeropdracht 2 Toernooi Algoritmiek, voorjaar 2019

Programmeeropdracht 2 Toernooi Algoritmiek, voorjaar 2019 Programmeeropdracht 2 Toernooi Algoritmiek, voorjaar 2019 Inleiding Al meer dan twintig jaar organiseert Karlijn aan het eind van het jaar een toernooi bij de volleybalclub, het zogenaamde oliebollentoernooi.

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

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)

Nadere informatie

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen

Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen Disclaimer Het bestand dat voor u ligt, is nog in ontwikkeling. Op verzoek is deze versie digitaal gedeeld. Wij willen de lezer er dan ook op wijzen dat er zowel typografische als inhoudelijke onvolkomenheden

Nadere informatie

Functioneel programmeren

Functioneel programmeren Functioneel programmeren Practicumopgave 2: Mastermind Het doel van deze opgave is het implementeren van het spel Mastermind; zie http://nl.wikipedia.org/wiki/mastermind voor een uitleg. Het spel is klein

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

Propositielogica. Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn. 24 augustus Universiteit Antwerpen

Propositielogica. Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn. 24 augustus Universiteit Antwerpen Propositielogica Evert De Nolf Delphine Draelants Kirsten Storms Evelien Weyn Universiteit Antwerpen 24 augustus 2006 Propositionele connectoren Negatie Conjunctie Disjunctie Implicatie Equivalentie Propositionele

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

Elfde college complexiteit. 23 april NP-volledigheid III

Elfde college complexiteit. 23 april NP-volledigheid III college 11 Elfde college complexiteit 23 april 2019 NP-volledigheid III 1 TSP Als voorbeeld bekijken we het Travelling Salesman/person Problem, ofwel het Handelsreizigersprobleem TSP. Hiervoor geldt: TSP

Nadere informatie

Project Paper: Tiling problem

Project Paper: Tiling problem Project Paper: Tiling problem Groep 11: Said Hattachi, Ismael el Hadad Hakim, Muttalip Küçük Januari 015 Abstract Dit artikel beschrijft een heuristiek waarmee een veld op een systematische wijze gevuld

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 november 2015 Expressies Functies Ingebouwde functies Variabelenbereik Inleveropgave 1 Terugblik Programma is een lijst van opdrachten Terugblik Programma is

Nadere informatie

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785)

Tegenvoorbeeld. TI1300: Redeneren en Logica. De truc van Gauss. Carl Friedrich Gauss, 7 jaar oud (omstreeks 1785) Tegenvoorbeeld TI1300: Redeneren en Logica College 3: Bewijstechnieken & Propositielogica Tomas Klos Definitie (Tegenvoorbeeld) Een situatie waarin alle premissen waar zijn, maar de conclusie niet Algoritmiek

Nadere informatie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

Nadere informatie

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven

Mededelingen. TI1300: Redeneren en Logica. Waarheidstafels. Waarheidsfunctionele Connectieven Mededelingen TI1300: Redeneren en Logica College 4: Waarheidstafels, Redeneringen, Syntaxis van PROP Tomas Klos Algoritmiek Groep Voor de Fibonacci getallen geldt f 0 = f 1 = 1 (niet 0) Practicum 1 Practicum

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

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

Stroomschema s maken op papier

Stroomschema s maken op papier 1 Stroomschema s maken op papier Een programma direct maken in Python, gaat vaak wel goed als het een klein programma is. Als het programma groter en moeilijker is, is het lastig om goed te zien welk commando

Nadere informatie

TI1300: Redeneren en Logica, Practicum 2 Deadline: 1 oktober 2010, 10:45 uur

TI1300: Redeneren en Logica, Practicum 2 Deadline: 1 oktober 2010, 10:45 uur TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TI1300: Redeneren en Logica, Practicum 2 Deadline: 1 oktober 2010, 10:45 uur Introductie In deze practicumopgave komt de

Nadere informatie

Logica voor Informatica

Logica voor Informatica Logica voor Informatica 10 Predikatenlogica Wouter Swierstra University of Utrecht 1 Vorige keer Syntax van predikatenlogica Alfabet Termen Welgevormde formulas (wff) 2 Alfabet van de predikatenlogica

Nadere informatie

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders. Spirograaf in Python Een kunstwerk maken Met programmeren kun je alles maken! Ook een kunstwerk! In deze les maken we zelf een kunstwerk met Python. Hiervoor zal je werken met herhalingen en variabelen.

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

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

Tentamen TI1300 en IN1305-A (Redeneren en) Logica

Tentamen TI1300 en IN1305-A (Redeneren en) Logica TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Tentamen TI1300 en IN1305-A (Redeneren en) Logica 21 Januari 2011, 8.30 11.30 uur LEES DEZE OPMERKINGEN AANDACHTIG DOOR

Nadere informatie

Logic for Computer Science

Logic for Computer Science Logic for Computer Science 06 Normaalvormen en semantische tableaux Wouter Swierstra University of Utrecht 1 Vorige keer Oneindige verzamelingen 2 Vandaag Wanneer zijn twee formules hetzelfde? Zijn er

Nadere informatie

Vergelijkingen met breuken

Vergelijkingen met breuken Vergelijkingen met breuken WISNET-HBO update juli 2013 De bedoeling van deze les is het doorwerken van begin tot einde met behulp van pen en papier. 1 Oplossen van gebroken vergelijkingen Kijk ook nog

Nadere informatie

Informatica: C# WPO 11

Informatica: C# WPO 11 Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo

Nadere informatie

2. Het proces De handleiding is opeenvolgend opgebouwd in de logisch te volgen stappen:

2. Het proces De handleiding is opeenvolgend opgebouwd in de logisch te volgen stappen: Handleiding STKKR 1. Introductie STKKR is een eenvoudig te gebruiken clouddienst waarmee middels de AFAS Get- en UpdateConnectoren gegevens opgehaald, bewerkt en, eventueel aan de hand van filters, teruggestuurd

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

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. Schrijf je naam onderaan op elk blad. 2.

Nadere informatie

Uitwerkingen Sum of Us

Uitwerkingen Sum of Us Instant Insanity Uitwerkingen Sum of Us Opgave A: - Opgave B: Voor elk van de vier kubussen kun je een graaf maken die correspondeert met de desbetreffende kubus. Elk van deze grafen bevat drie lijnen.

Nadere informatie

Aan het begin verliet Tony Campmans ons team, we hebben dus het hele project met één persoon minder gewerkt.

Aan het begin verliet Tony Campmans ons team, we hebben dus het hele project met één persoon minder gewerkt. INFOB1PICA 2013-2014 EINDVERSLAG Team 5: Solvify 1. Individuele teamleden en algemene informatie Studentnr Naam Uren 4153553 Joost Besseling 143 4145607 Coen Boot 161 4146603 Joost Houben 171 4088646 Michiel

Nadere informatie

Geldwisselprobleem van Frobenius

Geldwisselprobleem van Frobenius Geldwisselprobleem van Frobenius Karin van de Meeberg en Dieuwertje Ewalts 12 december 2001 1 Inhoudsopgave 1 Inleiding 3 2 Afspraken 3 3 Is er wel zo n g? 3 4 Eén waarde 4 5 Twee waarden 4 6 Lampenalgoritme

Nadere informatie

Let s play baseball! Let s get ready! Voorkennis: Sprites, Lopen, Variabelen, Scores, xy. Leerdoelen: 3D illusie, Klonen

Let s play baseball! Let s get ready! Voorkennis: Sprites, Lopen, Variabelen, Scores, xy. Leerdoelen: 3D illusie, Klonen Let s play baseball! Voorkennis: Sprites, Lopen, Variabelen, Scores, xy Leerdoelen: 3D illusie, Klonen Let s get ready! Jullie weten ongetwijfeld wat het belangrijkste is van het succes van elk goed spel

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

U kunt een waardebon toepassen op alle klanten, op een klantengroep of op een enkele klant; u kunt de vervaldatum bepalen.

U kunt een waardebon toepassen op alle klanten, op een klantengroep of op een enkele klant; u kunt de vervaldatum bepalen. Winkelwagenregels Winkelwagenregels De pagina "Winkelwagenregels" geeft u toegang tot een geavanceerde tool dat het waardebonnensysteem van PrestaShop 1.4 opvolgt. Doorgewinterde PrestaShop-gebruikers

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

Scratch les 3: Quiz! Je eigen spelshow

Scratch les 3: Quiz! Je eigen spelshow Scratch les 3: Quiz! Je eigen spelshow Hoeveel weten jouw vriendjes en vriendinnetjes over jouw favoriete onderwerp? Test het met je zelfgemaakte quiz! Ga naar https://scratch.mit.edu/projects/112774047/.

Nadere informatie

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University

Logica voor Informatica. Propositielogica. Syntax & Semantiek. Mehdi Dastani Intelligent Systems Utrecht University Logica voor Informatica Propositielogica Syntax & Semantiek Mehdi Dastani m.m.dastani@uu.nl Intelligent Systems Utrecht University Wat is Logica? Afleiden van conclusies uit aannames Jan Sara Petra Schuldig

Nadere informatie

SupportLog Handleiding

SupportLog Handleiding SupportLog Handleiding SupportLog Handleiding... 1 1. Doel... 1 2. Aanmelden... 1 3. Ingeven van een nieuwe call... 2 4. Bekijken van Details van je Call... 3 5. Gegevens toevoegen aan bestaande call...

Nadere informatie

Praktijkinstructie Tekstverwerking 1 (CSE12.1/CREBO:53139)

Praktijkinstructie Tekstverwerking 1 (CSE12.1/CREBO:53139) instructie Tekstverwerking 1 (CSE12.1/CREBO:53139) pi.cse12.1.v2 ECABO, 1 september 2003 Alle rechten voorbehouden. Niets uit deze uitgave mag worden vermenigvuldigd, overgenomen, opgeslagen of gepubliceerd

Nadere informatie

Tentamentips. Tomas Klos. 14 december 2010

Tentamentips. Tomas Klos. 14 december 2010 Tentamentips Tomas Klos 14 december 010 Samenvatting In dit document vind je een aantal tentamen tips. Het gaat om fouten die ik op tentamens veel gemaakt zie worden, en die ik je liever niet zie maken.

Nadere informatie

TI1300: Redeneren en Logica, Practicum 1 Deadline: 17 september 2010, 10:45 uur

TI1300: Redeneren en Logica, Practicum 1 Deadline: 17 september 2010, 10:45 uur TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TI1300: Redeneren en Logica, Practicum 1 Deadline: 17 september 2010, 10:45 uur Introductie In deze practicumopgave komt

Nadere informatie

SLIMSTAMPEN HANDLEIDING

SLIMSTAMPEN HANDLEIDING SLIMSTAMPEN HANDLEIDING Dit is een korte handleiding voor de SlimStampen website. Een gebruiker van de website kan verschillende activiteiten kiezen door op één van de knoppen boven aan de eerste pagina

Nadere informatie

Samenvatting. TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten. Disclaimer

Samenvatting. TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten. Disclaimer Samenvatting TI1306 Redeneren & Logica Review Guide 2014 Door: David Alderliesten Disclaimer De informatie in dit document is afkomstig van derden. W.I.S.V. Christiaan Huygens betracht de grootst mogelijke

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

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

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/ Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani

Logica voor Informatica. Propositielogica. Normaalvormen en Semantische tableaux. Mehdi Dastani Logica voor Informatica Propositielogica Normaalvormen en Semantische tableaux Mehdi Dastani m.m.dastani@uu.nl Intelligent Systems Utrecht University Literals Een literal is een propositieletter, of de

Nadere informatie

Ga naar en remix dit project.

Ga naar   en remix dit project. Quiz In deze handleiding leer je hoe je een quiz kunt maken waarmee je kunt testen hoeveel jouw vriendjes en vriendinnetjes over jouw favoriete onderwerp weten. Ga naar https://scratch.mit.edu/projects/112774047/

Nadere informatie

Algoritmisch Denken: Dodo s Bit Parity

Algoritmisch Denken: Dodo s Bit Parity Algoritmisch Denken: Dodo s Opdrachtomschrijving: Jouw opdracht, als je deze accepteert, is om Mimi (een Dodo) te leren een bit parity fout te ontdekken en te herstellen. Leerdoelen: Ik kan een correct

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

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13 5 Inhoud Inhoud Over dit boek 7 1 Eclipse IDE (Integrated Development Environment) 9 2 Functionele specificatie 13 3 Implementatie grafische gebruikersinterface 31 4 De klassen en methoden 57 5 Technische

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

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

algoritmiek - antwoorden

algoritmiek - antwoorden 2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd

Nadere informatie

Software-Ontwikkeling I Academiejaar 2006-2007

Software-Ontwikkeling I Academiejaar 2006-2007 Software-Ontwikkeling I Academiejaar 2006-2007 Project: Bibliotheekbeheer 1 1. Digitale bibliotheek a. Inleiding Bibliotheken houden onder meer hun collecties van uitleenbare artikels bij in digitaal formaat.

Nadere informatie

Stroomschema s maken in Word

Stroomschema s maken in Word 1 Stroomschema s maken in Word Een programma direct maken in Scratch gaat vaak wel goed als het een klein programma is. Als het programma groter en moeilijker is, is het lastig om goed te zien welk commando

Nadere informatie

Eventing. Introductie. Regel verwerking. Basis structuur

Eventing. Introductie. Regel verwerking. Basis structuur Eventing Eventing...1 Introductie...1 Regel verwerking...1 Basis structuur...1 Waar of Onwaar...2 AND en OR...2 Haakjes...3 Operatoren...3 Apparaten...3 Functies...4 Acties...4 Parameters van apparaten

Nadere informatie

Pythoncursus. Opdrachtenserie 3. Tanja, Koen en Marein oktober Opdracht 1 - Turtlegraphics

Pythoncursus. Opdrachtenserie 3. Tanja, Koen en Marein oktober Opdracht 1 - Turtlegraphics Pythoncursus Opdrachtenserie 3 Tanja, Koen en Marein oktober 2018 Opdracht 1 - Turtlegraphics In deze opdracht gaan we tekenen! Hiervoor gebruiken we de library turtlegraphics, waarmee je met Python een

Nadere informatie

Toetsen in Blackboard

Toetsen in Blackboard Toetsen in Blackboard Met de tool Test kun je toetsvragen maken en afnemen. In dit document wordt uitgelegd 1. Hoe een toets gemaakt kan worden. 2. Hoe een toets bewerkt kan worden. 3. Hoe een toets beschikbaar

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

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? 1 Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby? Voordat je begint met programmeren, moet je Ruby installeren.

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

Programmeermethoden NA. Week 5: Functies (vervolg)

Programmeermethoden NA. Week 5: Functies (vervolg) Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def

Nadere informatie

Introductie Coach 6 videometen. 1 Eerste oefening

Introductie Coach 6 videometen. 1 Eerste oefening Introductie Coach 6 videometen 1 Eerste oefening Open het programma coach6. Het pictogram vind je op het bureaublad van je pc. Je krijgt dan het onderstaande scherm te zien. Verander docent in student.

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

Hoofdstuk 16: Zoek- en verwijzingsfuncties

Hoofdstuk 16: Zoek- en verwijzingsfuncties Hoofdstuk 16: Zoek- en verwijzingsfuncties 16.0 Inleiding Eén van de belangrijkste functies binnen Excel is de mogelijkheid om te zoeken naar een specifieke waarde binnen een groot aantal cellen met gegevens.

Nadere informatie

Leerpaden maken. 1. Account en wachtwoord. 2. Maak een nieuw leerpad aan. 3. Inhoud aan een leerpad toe voegen. 4. Structuur aanbrengen op een pagina.

Leerpaden maken. 1. Account en wachtwoord. 2. Maak een nieuw leerpad aan. 3. Inhoud aan een leerpad toe voegen. 4. Structuur aanbrengen op een pagina. Leerpaden maken 1. Account en wachtwoord 2. Maak een nieuw leerpad aan. 3. Inhoud aan een leerpad toe voegen. 4. Structuur aanbrengen op een pagina. 5. Structuur aanbrengen met stappen 6. Structuur aanbrengen

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

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

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

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

Nadere informatie

Informatica: C# WPO 12

Informatica: C# WPO 12 Informatica: C# WPO 12 1. Inhoud Datacontainers, bestanden uitlezen, bestanden schrijven en data toevoegen aan en bestand, csv-bestanden 2. Oefeningen Demo 1: Point2D Demo 2: Notepad Demo 3: Read CSV-file

Nadere informatie

STAPPENPLAN SMARTSCHOOL

STAPPENPLAN SMARTSCHOOL 2014 Karel De Grote Hogeschool Campus Pothoekstraat Mark Callens STAPPENPLAN SMARTSCHOOL Dit document helpt leerlingen uit 2PBSO te werken met Smartschool op het niveau van een leerkracht. stappenwijzer

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

Maak automatisch een geschikte configuratie van een softwaresysteem;

Maak automatisch een geschikte configuratie van een softwaresysteem; Joost Vennekens joost.vennekens@kuleuven.be Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal

Nadere informatie

WISKUNDE B -DAG 2002 1+ 1 = 2. maar en hoe nu verder? 29 november 2002

WISKUNDE B -DAG 2002 1+ 1 = 2. maar en hoe nu verder? 29 november 2002 - 0 - WISKUNDE B -DAG 2002 1+ 1 = 2 maar en hoe nu verder? 29 november 2002 De Wiskunde B-dag wordt gesponsord door Texas Instruments - 1 - Inleiding Snel machtverheffen Stel je voor dat je 7 25 moet uitrekenen.

Nadere informatie

SCRATCH GEVORDERDEN Inhoudsopgave

SCRATCH GEVORDERDEN Inhoudsopgave Inhoudsopgave 1 2 3 4 5 Pen gereedschap Lussen tekenen Lussen tekenen Gavere lijnen De computer helpen 1.1 1.2 1.3 1.4 1.5 1 Pen gereedschap 1 Je kent de basis van Scratch en hebt je eerste game gemaakt.

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

Programmeerstructuren met App Inventor

Programmeerstructuren met App Inventor Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

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

Nadere informatie

Oefeningenexamen Informatica: juni 2015

Oefeningenexamen Informatica: juni 2015 Oefeningenexamen Informatica: juni 2015 Voornaam: Naam: IT-nummer: PC-nummer: Vul je naam, IT-nummer en PC-nummer (staat op de computer, bv. PC15) hierboven in. De examenbladen moeten mee afgegeven worden,

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

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

Nadere informatie

Handleiding Wordpress

Handleiding Wordpress Handleiding Wordpress Inhoudsopgave 1. Inloggen 2. Berichten en Pagina s 3. Afbeeldingen en video s 4. Weblinks 1. Inloggen 1.1 Inloggen bij Wordpress We starten met het inloggen op je WordPress gebaseerde

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

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 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

Nadere informatie

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00

Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 Toets Programmeren, 2YP05 op donderdag 13 november 2008, 09:00-12:00 TU/e Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica (Na de toets gecorrigeerde versie) PROBLEEM: Sleutels Lees

Nadere informatie

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken Handleiding JCreator Inhoud Een Workspace en een eerste project maken Een tweede project maken De editor van JCreator Aanpassen van de basis-directory Documentatie over klassen en methoden van de JDK Bestand

Nadere informatie

Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.

Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2. Datastructuren 2016 Programmeeropdracht 3: Patroonherkenning Deadlines. Woensdag 23 november 23:59, resp. vrijdag 9 december 23:59. Inleiding. Deze opdracht is gebaseerd op Hoofdstuk 13.1.7 in het boek

Nadere informatie

Snel starten met Testweb Diagnose

Snel starten met Testweb Diagnose Snel starten met Testweb Diagnose WAAR? Je vind Testweb Diagnose op de volgende website: www.testweb.bsl.nl Je kunt inloggen in het groene vak aan de rechterkant: Direct inloggen Testweb Diagnose INLOGGEN

Nadere informatie

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma 3 Vereiste kennis Dit boek richt zich op het leren programmeren door het oefenen met programmeercodes. Veel theorie komt in het begin niet aan de orde. Dat is een grote uitdaging want het is niet makkelijk

Nadere informatie

Labo 2 Programmeren II

Labo 2 Programmeren II Labo 2 Programmeren II L. Schoofs K. van Assche Gebruik Visual Studio 2005 om een programma te ontwikkelen dat eenvoudige grafieken tekent. Deze opgave heb je vorig academiejaar reeds in Java geïmplementeerd.

Nadere informatie