Rush Hour. Concurrency Opgave 3, Herfst
|
|
- Martha Peters
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Achtergrond Rush Hour Concurrency Opgave 3, Herfst 24 Rush Hour is een schuifpuzzel waarbij je door middel van het schuiven van andere auto s op het terrein je eigen auto moet proberen vrij te spelen. Je kunt op de website van ThinkFun dit spel uitproberen. Als je het liever op je telefoon/tablet wilt uitproberen, kun je de app Unblock Me (ios/android, gratis) downloaden die een heel vergelijkbare gameplay heeft (maar niet van ThinkFun is). Er staan horizontaal en vertikaal auto s van verschillende lengtes op het spelbord. Je kunt een horizontale auto alleen horizontaal, en een vertikale auto alleen vertikaal verplaatsen. Het doel is, om een gegeven auto naar het doelvakje te verplaatsen. Dit is alleen knap lastig, omdat de andere auto s in de weg staan. Zoek een zo kort mogelijke oplossing (zo klein mogelijk aantal verschuivingen) om de auto naar zijn doel te brengen. Opdracht Voor deze opdracht moet je een parallelle Rush Hour solver maken. Je programma moet niet alleen de standaard 6x6-configuratie aan kunnen, maar ook rechthoeken van andere formaten. Bij het zoeken van een oplossing moet je bijhouden welke posities in de puzzel je al hebt bezocht, om herhaling van zetten te voorkomen. Uitvoer Er zijn twee uitvoermodi: Telmodus: Geef het aantal stappen dat minimaal nodig is om de puzzel op te lossen. Indien de puzzel niet oplosbaar is wordt - gegeven. Oplosmodus: Geef als antwoord een mogelijke kortste oplossing door middel van een stap voor stap beschrijving. Elke stap wordt in de uitvoer gescheiden door een komma en bestaat uit 3 karakters: () het karakter van de auto, (2) de richting van de stap: u, d, l of r voor respectievelijk up, down, left en right, (3) het aantal vakjes dat de auto verschuift in die richting. Als er geen oplossing voor de puzzel is wordt Geen oplossing gevonden als uitvoer gegeven. Een auto meer dan hokje verplaatsen wordt ook gerekend als stap. Let er op dat je tijdens de Telmodus geen tijd en geheugen besteedt aan het onnodig bijhouden van de bijbehorende oplossing. Versie: 8 december 25.
2 Het doel van het spel is om je eigen auto te bevrijden. Voor deze opdracht zal je eigen auto altijd aangeduid worden met de letter x. Omdat we met variabele borden werken wordt bij de invoer de targetspace gedefiniëerd (zie Invoer). Dit zijn de coordinaten van het vakje, geteld vanuit een -based grid, waar de linker bovenhoek van onze auto zich moet bevinden om de puzzel als opgelost te beschouwen. Het targetvak ligt altijd binnen het bord. Invoer De invoer begint met 3 regels met daarop: Een integer u, de uitvoermodus: voor Telmodus, voor Oplosmodus. Een integer w gevolgd door een spatie en een integer h, de breedte en hoogte van het bord. Hierbij geldt dat zowel w als h positief en kleiner dan 2 zijn. Een integer x gevolgd door een spatie en een integer y, de coordinaten van het targetvakje. Hierna volgen h regels van w karakters per stuk die de beginpositie van het bord voorstellen. Een. geeft een leeg vakje aan, de x geeft de te bevrijden auto aan. De overige auto s worden voorgesteld met andere lowercase karakters. Alle auto s zijn minstens 2 vakjes lang, zijn -dimensionaal (en staan dus altijd horizontaal of verticaal) en iedere auto heeft een uniek karakter (er zijn dus nooit meer dan 26 auto s). Nog wat extra tips: De karakters zijn alleen ter identificatie van de auto s en hebben (behalve x ) verder geen betekenis. Ook je eigen auto kan groter zijn dan 2 vakjes. Je eigen auto kan ook verticaal staan. Details Gebruik van Threads/Tasks/etc... Bij deze opdracht heb je iets meer vrijheid. Je mag alle 2 ingebouwde functionaliteit van C# gebruiken, dus ook alles uit bijvoorbeeld System.Collections.Concurrent en System.Threading.Parallel. Verras ons met hoe goed je de functionaliteit van C# in je voordeel kan gebruiken! In tegenstelling tot bij opdracht, is het aantal threads/tasks geen onderdeel van de invoer! Het is de bedoeling dat je programma zelf besluit wat een redelijk aantal 2 met uizondering van System.Solvers.Concurrent.RushHour. 2
3 is, bijvoorbeeld door te kijken naar Environment.ProcessorCount. Nog mooier 3 is om Parallel.For of Parallel.ForEach te gebruiken of een ThreadPool te gebruiken. Deze methoden verdelen vanzelf het werk over een aantal threads, en het aantal threads wordt door C# constant aangepast om zo goed mogelijke prestaties te behalen. Representatie Om je programma zo snel mogelijk te laten zoeken, moet je een goede representatie hebben van posities. De manier waarop het in de invoer wordt gegeven (met strings) is voor intern gebruik niet erg goed omdat het veel ruimte gebruikt en string-operaties erg langzaam zijn. Een goede representatie is om een array te maken met integers 4, voor iedere auto in het spelbord integer. De integer geeft dan aan hoeveel posities de auto is verschoven ten opzichte van de rand van het bord. Je hebt ook nog wat extra informatie nodig (zoals in welke rij/kolom een auto staat, hoe lang hij is en of hij horizontaal/vertikaal is) maar dit hoef je niet bij de representatie van de positie op te slaan (want het is altijd hetzelfde). Oplossing opslaan In de oplosmodus is het nodig om de oplossing op te slaan. Je kunt bij iedere positie een string bijhouden die de oplossing om bij die positie te komen op slaat, maar dit is niet erg efficiënt. Beter is het om een soort linked list te bouwen, waarbij iedere positie een pointer heeft naar de positie die voor hem zit. Zo kun je door vanaf de oplossingspositie deze pointers terug naar de beginpositie te volgen de oplossing reconstrueren. Algoritme Een algoritme dat je kunt gebruiken om Rush Hour op te lossen, heet Breadth-First Search. Het idee is, dat je begint met de beginpositie (diepte ) en dat je vanuit hier een lijst genereert van alle mogelijke volgende posities die je door het doen van zet kunt verkrijgen (diepte ). Vanuit deze lijst bouw je weer een lijst op van alle mogelijke posities die je in 2 zetten kunt bereiken (diepte 2). Herhaal dit procedé totdat je de oplossing hebt gevonden. Merk op dat het niet nodig is, om de lijsten met posities te behouden: je kunt op diepte (n + 2) de lijst van diepte n weggooien om geheugen te besparen. Taboo List Breadth-First Search heeft een groot nadeel, het kan rondjes lopen: de beginpositie levert een lijst op van posities op diepte, maar als je niet op let bevat de lijst van posities op diepte 2 ook weer de beginpositie - en de lijst van posities op diepte 3 bevat ook weer alle diepte -posities! Om dit te voorkomen moet je een Taboo List 5 bouwen: een lijst van 3 Dit levert dus ook meer punten op. 4 Tip: een integer kan 2 32 verschillende waarden opslaan, er zijn per auto maximaal 2 posities. Kies voor maximale efficiëntie dus een ander numeriek datatype! 5 NB: Dit heeft niks met Tabu Search te maken 3
4 posities die je al hebt gezien. Bij het ontdekken van een positie zet je deze in de taboo list, en posities die al in de taboo list staan bekijk je niet nog eens. Om dit snel genoeg te krijgen, kun je gebruik maken van de ConcurrentDictionaryklasse. Je moet dan wel een goede hashfunctie definiëren voor je posities. Je kunt extra punten verdienen door niet de ConcurrentDictionary te gebruiken, maar zelf een datastructuur te implementeren. Je kunt bijvoorbeeld met behulp van de CompareExchange-methode de wacht-vrije Trie bouwen. Een Trie (wikipedia) is een speciale datastructuur die vooral voor strings wordt gebruikt, maar ook zeer geschikt is om Rush Hour-posities op te slaan. Een TrieNode-object is een object met daarin een array van (nog meer) TrieNodes. Als de eerste auto op het bord (bijvoorbeeld) 6 mogelijke posities heeft, is de wortel van de Trie een TrieNode-object met een array van 6 TrieNodes. Het eerste element van deze array komt overeen met dat de eerste auto op positie staat, en de tweede met positie 2, etc... De TrieNode-objecten in de array van de wortel geven dan de positie van de tweede auto weer, etc... Als ik dus een bord heb met auto op positie 3, auto 2 op positie 4 en auto 3 op positie 2, dan bekijk ik Trie[3][4][2]. Omdat er heel veel mogelijke posities zijn (en lang niet alle posities zijn bereikbaar) is het niet haalbaar om de Trie in het begin helemaal op te bouwen. In het begin zijn alle TrieNode-objecten null, en die worden opgevuld als posities worden ontdekt. Als je op het pad in de Trie naar jouw positie een null tegenkomt, betekent dat dat die positie er nog niet in staat. Optioneel: A* met Heuristiek A* is een ander zoek-algoritme. Je kunt dit algoritme een heuristiek meegeven. De heuristiek maakt een schatting van hoe veel stappen een bepaalde positie van de oplossing af staat zodat je gerichter kunt zoeken. Hierdoor kun je veel ingewikkelder Rush Hour-puzzels oplossen. Als je A* implementeert moet het mogelijk zijn om de heuristiek uit te schakelen (zie Invoer). Zonder heuristiek gedraagt A* zich hetzelfde als BFS. Je hoeft daarom naast A* niet ook BFS te implementeren. Lees voor meer informatie het wikipedia-artikel over A*. Bedenk zelf een goede heuristiek. Zonder dit onderdeel kun je een halen, met het implementeren van A* kun je bonuspunten verdienen en eventuele fouten in andere onderdelen compenseren. Tip: om A* te implementeren heb je een priority queue nodig. Gebruik in geen geval SortedList, dit is veel te langzaam. Je kunt bijvoorbeeld een array A van lijsten maken, waarbij een positie met afstandschatting d in de lijst A[d] wordt opgeslagen. Verslag Schrijf een kort (5- regels) verslag over je programma. Noem hier in welke datastructuren je hebt gebruikt, en of de operaties hierop locking zijn. 4
5 In een ideale wereld zou een programma dat op n cores draait, n keer zo snel moeten werken. In de praktijk lukt dit nooit, omdat er door bijvoorbeeld locking en communicatie bottlenecks ontstaan waardoor dingen niet parallel kunnen. Noem in je verslag wat de bottlenecks in jouw programma zijn, en wat je hebt gedaan om bottlenecks te vermijden. Beoordeling Voor dit practicum is weer een testprogramma beschikbaar, TomJudge3.exe. Wij gebruiken dit programma ook bij de beoordeling, dus het is heel verstandig om zelf je programma door TomJudge te laten checken. Zet het bestand TomJudge3.exe in dezelfde map als de *.cs-bestanden van je project. TomJudge zoekt vervolgens automatisch in de./bin/debug-map naar de debug-versie van je executable. Het is belangrijk dat je voordat je test met TomJudge eerst zorgt dat de debug-versie van je project up-to-date is (gebruik F5 of F6 in Visual Studio). Je kunt eventueel ook de locatie van je executable doorgeven als argument, voer dan in de opdrachtprompt in: TomJudge3 "C:/Concurrency/Programma.exe". NB: TomJudge werkt alleen op Windows. Het daarom is niet verplicht om TomJudge te gebruiken maar voor het nakijken is het handig als je het bestand report.csv dat TomJudge aanmaakt ook inlevert. Let er ook op dat TomJudge op verschillende computers andere beoordeingen kan geven, het is voor ons immers niet te doen om het op al jullie computers uit te proberen. TomJudge geeft alleen een indicatie en is bedoeld om te helpen, maar we gaan bij het nakijken er van uit hoe je programma op onze computer wordt beoordeeld. Extra informatie Sommige van de testcases (met name hard-,2,3 en 4) zijn erg lastig. Hard-,2 en 3 kunnen met BFS opgelost worden. Hard-4 zal je alleen lukken als je A* met een goede heuristiek gebruikt. Het is niet erg als je hard-3 niet haalt. Het is mooi als dat wel lukt, maar het is geen verplichting. TomJudge test alleen of je programma correct werkt, maar kan niet zien hoe mooi het is geschreven en welke datastructuren je gebruikt. TomJudge kan ook je verslag niet lezen. Anders dan bij de eerste opdrachten zal de beoordeling iets meer naar de code kijken en minder naar de testresultaten (alhoewel je als alle tests correct zijn nog steeds een mooi cijfer kunt verwachten). Voorbeelden Hier volgen enkele voorbeelden van invoer en bijbehorende uitvoer. Je kunt ze vinden op de praktikumpagina, waarbij voorbeeld VVV bestaat uit bestanden VVV.in en VVV.uit. Voorbeeld st: 5
6 aaobcc..ob.. xxo... deeffp d..k.p hh.k.p Voorbeeld drie: Deze kan in drie stappen......a... xxa.b....b Voorbeeld vol: Oei die staat behoorlijk vol. aaabcd effbcd e.xxcd ggh....ih.jj.ikkll Voorbeeld fifty: Fifty shades of sweat. 6
7 ..cddd a.ce.. axxe.. bbryyi.gruui.gtt.i Voorbeeld qwerty:..qwwe..qr.e xxqr.e tiii.. tuuop. yy.op. Voorbeeld rondje: Autodraaikolkje cddd...q.. a.ce...q.. axxe...q.. bbryyi....gruui....gtt.i...zz. Voorbeeld kannie: Deze kan echt niet. 2 2.xx...q.....q.. 7
Netchange. Concurrency Opgave 2, December
Netchange Concurrency Opgave 2, December 2016 1 Opdracht Achtergrond Het internet wordt gevormd door vele computers die met elkaar in verbinding staan en een groot netwerk vormen. Op deze kaart kun je
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieHet Eindfeest. Algoritmiek Opgave 6, Voorjaar
1 Achtergrond Het Eindfeest Algoritmiek Opgave 6, Voorjaar 2017 1 Om het (successvol) afsluiten van Algoritmiek te vieren, is er een groot feest georganiseerd. Jij beschikt als enige van je vrienden over
Nadere informatieExamen 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 informatieOefeningen 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
Nadere informatieOpgave 2. Binaire informatie
Opgave 2. Binaire informatie In deze opgave krijgt je programma telkens als invoer een vierkant rooster dat eigenlijk is gevuld met uitsluitend nullen en enen. Van een deel van de cellen is (nog) niet
Nadere informatieTentamen 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
Nadere informatieInformatica: 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 informatieGrafen en BFS. Mark Lekkerkerker. 24 februari 2014
Grafen en BFS Mark Lekkerkerker 24 februari 2014 1 Grafen Wat is een graaf? Hoe representeer je een graaf? 2 Breadth-First Search Het Breadth-First Search Algoritme Schillen De BFS boom 3 Toepassingen
Nadere informatieDatastructuren 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
Nadere informatieInformatica: C# WPO 13
Informatica: C# WPO 13 1. Inhoud Bestanden uitlezen, bestanden schrijven en data toevoegen aan een bestand, csv-bestanden 2. Oefeningen Demo 1: Notepad Demo 2: Read CSV-file Demo 3: Write CSV-file A: Plot
Nadere informatieProgrammeren (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 informatieDatastructuren 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):
Nadere informatieProgrammeren 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 informatieElfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort
Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D
Nadere informatieDomJudge-Practicum. Open Dag UU
1 Introductie DomJudge-Practicum Open Dag UU Bij veel vakken die je volgt tijdens je studie informatica aan de UU, moet je programmeeropdrachten maken. Soms moet je die inleveren zodat ze door de docent
Nadere informatieZelf een Afsluitknop maken in Windows 10 ( of 7 of 8.x )
Windows 10 W017 Zelf een Afsluitknop maken in Windows 10 ( of 7 of 8.x ) ( De snelste manier om een computer netjes af te sluiten via de software! ) In dit document wordt uitgelegd hoe U zelf eenvoudig
Nadere informatieVariabelen 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 informatieInformatica: C# WPO 10
Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante
Nadere informatieWaarom ga je schrijven? Om de directeur te overtuigen
week 17 20 april 2015 - Schrijfopdrachten niveau A, les 1 Les 1: Een overtuigende tekst schrijven Beantwoord deze vragen: Een mooie manier om te herdenken 1. Waarom is het volgens jou belangrijk om de
Nadere informatieUitwerking tentamen Algoritmiek 10 juni :00 13:00
Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.
Nadere informatieComputationele Intelligentie
Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd
Nadere informatiePracticumopgave 3: SAT-solver
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
Nadere informatieHandleiding bij de Booktest Generator
Handleiding bij de Booktest Generator Het programma voor het maken van toetsen bij boeken. (c) 2005/2009 Visiria Uitgeversmaatschappij Twisk Inleiding Onze dank voor het aanvragen van de Booktest Generator.
Nadere informatieGrafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.
Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee
Nadere informatieAlgoritmisch 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 informatieExamen 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 informatieGO spelregels. Wim Berkelmans
GO spelregels www.go.org Wim erkelmans Inhoud Voorwoord Go Voorwoord ord, stenen en zetten Keten en vrijheid 5 Slaan en atari 6 Puzzels 7 Ontsnappen 8 Verbinden en knippen 9 Zelfslag 0 Oog Ko Twee ogen
Nadere informatieDe Leidsche Flesch Studievereniging voor Natuurkunde, Sterrenkunde, Wiskunde en Informatica sinds DLF Pointerworkshop
DLF Pointerworkshop Opgaven 2 maart 2016 XKCD # 371 In dit document staan een aantal oude tentamenopgaven om te oefenen voor het hertentamen PR Bij de selectie is rekening gehouden met de opgaven die het
Nadere informatieComputationele Intelligentie
Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd
Nadere informatieInformatica: 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 informatieHoe maak ik een fotocollage met Pixlr?
Hoe maak ik een fotocollage met Pixlr? Stap 1: Open je webbrowser: of of of.. Stap 2: Ga naar www.pixlr.com Stap 3: Klik hier: Stap 4: Maak je collage Open pixlr express (Efficient) door erop te klikken,
Nadere informatieOpgaven Kunstmatige Intelligentie 1 maart 2017
Opgaven Kunstmatige Intelligentie 1 maart 2017 Opgave 1. a. Denkt een schaakprogramma? b. Denkt een (Nederlands-Engels) vertaalprogramma? c. Denkt een C ++ -compiler? d. Denkt Watson, the IBM-computer
Nadere informatieZo 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 informatieEen 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 informatieWaarom ga je schrijven? Om de directeur te overtuigen
week 17 20 april 2015 - Schrijfopdrachten niveau B, les 1 Les 1: Een overtuigende tekst schrijven Beantwoord deze vragen: Een mooie manier om te herdenken 1. Waarom is het volgens jou belangrijk om de
Nadere informatie5. Werken met afbeeldingen
103 5. Werken met afbeeldingen Foto s en tekeningen worden ook wel afbeeldingen genoemd. Afbeeldingen maken een website niet alleen mooier. Ze zijn ook belangrijk om duidelijk te maken wat je precies bedoelt.
Nadere informatieTECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica
TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TWl(0)9O Inleiding Programmeren Tentamen 16 maart 2017, 9:00-12:00 uur Normering: Opgave 1 t/m 3 ieder 6 punten. Score:
Nadere informatieOefeningenexamen 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 informatieVoornaam. Achternaam. adres
Klik op: Voornaam Achternaam Vul de gegevens in en klik op: Email adres Geef een wachtwoord op. Herhaal het wachtwoord (niet knippen en plakken) blz.1 van 10 Hier volgt een aantal voorbeelden van de mogelijkheden
Nadere informatieToets 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 informatieVoor 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 informatieAutomating Complex Workflows using Processing Modeler
Automating Complex Workflows using Processing Modeler QGIS Tutorials and Tips Author Ujaval Gandhi http://google.com/+ujavalgandhi Translations by Dick Groskamp This work is licensed under a Creative Commons
Nadere informatieTELEPORTEREN MET VARIABELEN
2 TELEPORTEREN MET VARIABELEN Ben je zover dat je de kracht van Python kunt gebruiken om jouw Minecraft wereld te beheersen? In dit hoofdstuk krijg je een korte rondleiding langs de basisbegrippen van
Nadere informatieDatum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF--- --- Reken om naar EURO---
3UREOHPHQRSORVVHQPHW9%$WRHSDVVLQJHQELMGHHO Naam. NR : Klas. PC : Datum. 23*$9( Hieronder vind je het algoritme om een bedrag in BEF om te rekenen naar EURO. Zet het algoritme om in programmacode. Noem
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieHandleiding bij de workshop Animatie in Microsoft PowerPoint Hoe maak je een animatie in Microsoft PowerPoint 2010? Handleiding voor kinderen
Vorige keer hebben wij gesproken over het maken van een PowerPoint presentatie. Deze keer beginnen wij met de herhaling van de basis handelingen op de computer zoals: iets op je scherm aanwijzen iets op
Nadere informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Nadere informatieJe 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 informatie13. Symbool-, Lijnstijlbibliotheek (Resource Editor)... 1
13. Symbool-, Lijnstijlbibliotheek 13. Symbool-, Lijnstijlbibliotheek (Resource Editor)... 1 13.1. Inleiding...1 13.2. Icoonomschrijving...2 13.3. Menu Bestand...3 13.3.1. Nieuwe Bibliotheek maken... 3
Nadere informatieAan de gang. Wiskunde B-dag 2015, vrijdag 13 november, 9:00u-16:00u
Aan de gang Wiskunde B-dag 2015, vrijdag 13 november, 9:00u-16:00u Verkenning 1 (Piano) Je moet een zware piano verschuiven door een 1 meter brede gang met een rechte hoek er in. In de figuur hierboven
Nadere informatieJe gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.
1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat
Nadere informatieStacks 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 informatieOPDRACHTKAART. Thema: Prepress. InDesign 15. Pagina s PP-01-15-01. Voorkennis: De vorige praktijkopdrachten afgerond.
OPDRACHTKAART PP-01-15-01 Pagina s Voorkennis: De vorige praktijkopdrachten afgerond. Intro: In bijna alle boeken en tijdschriften die je opent, zie je dat de pagina s genummerd zijn. Het is natuurlijk
Nadere informatieExamen 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 informatieDB Alerts vernieuwde app voor Android gebruikers
DB Alerts vernieuwde app voor Android gebruikers De DB Alerts app voor Android is volledig vernieuwd. Naast de bekende functionaliteiten uit de vorige versie (bekijken van waarnemingen en het invoeren
Nadere informatieBij het opstarten van Small Basic verschijnt er de onderstaande werkomgeving.
Small Basic - werkomgeving 1/5 Werkomgeving Bij het opstarten van Small Basic verschijnt er de onderstaande werkomgeving. Bovenaan vind je de werkbalk met opdrachtknoppen. Onder de werkbalk links kan je
Nadere informatieHANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)
HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) Vereiste voorkennis Voldoende kennis van het besturingssysteem (in deze handleiding wordt uitgegaan van Windows) De basisprincipes van programmeren Vereiste
Nadere informatieExamen Algoritmen en Datastructuren III
Derde bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)
Nadere informatieonderzoek werkblad naam: Biodiversiteit les & In de klas Buiten - zoekkaart Bodemdiertjes of site dierenzoeker.nl of de app dierenzoeker
Biodiversiteit naam: - twee bakken - tuinschop of spade - loeppotjes of vergrootglazen - zoekkaart Bodemdiertjes of site dierenzoeker.nl of de app dierenzoeker In de klas Er leven in Nederland meer dan
Nadere informatieVisual 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 informatieAlgoritmiek. 2 februari Introductie
College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet rvvliet@liacs.nl assistent werkcollege: Bart van Strien bartbes@gmail.com website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/
Nadere informatieStacks 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 informatieTwaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify
Algoritmiek 2016/Branch & Bound Twaalfde college algoritmiek 13 mei 2016 Branch & Bound Heap, Heapsort & Heapify 1 Algoritmiek 2016/Branch & Bound TSP met Branch & Bound Mogelijke ondergrenzen voor de
Nadere informatieRush Hour: pad-planning met een robot-arm
Rush Hour: pad-planning met een robot-arm 24 juni 2016 Student: Nils Hulzebosch 10749411 Sjors Witteveen 10808493 Practicumgroep: F Docent: Arnoud Visser 1 Introductie Voor het vak Zoeken, Sturen en Bewegen
Nadere informatie13 tips tegen een trage PC. Een trage PC, wat zijn de mogelijkheden om dit te voorkomen of te verhelpen: 1.Taakbeheer.
13 tips tegen een trage PC. Een trage PC, wat zijn de mogelijkheden om dit te voorkomen of te verhelpen: 1.Taakbeheer. Houd de Ctrl-toets en de Shift-toets beide ingedrukt en tik met je vinger op de Esc-toets.
Nadere informatieModelleren 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 informatieTentamen 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
Nadere informatieLet 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 informatie9.18 Macro s: oefeningen
9.18 Macro s: oefeningen Oefening 77.: Macro relatief opnemen Open een nieuwe map. Plaats uw invoercel ergens in de linker-bovenhoek van het blad (bijvoorbeeld in B2). Start het opnemen van een macro met
Nadere informatieWeet jij een paar leuke lijstjes? Denk bijvoorbeeld aan alle kinderen in je klas of al je vriendjes of vriendinnetjes.
Een gek verhaal Lesdoel In deze les maak je een interactief verhaal. Jij gaat de computer dieren, plaatsen en dingen om te doen voeren. De computer laat het verhaal dan echt zien. Hier zie je bijvoorbeeld
Nadere informatieInleiding 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 informatiewoensdag 2/3/4² - Diepenbeek OPGAVEN CAT 4
woensdag /3/4² - Diepenbeek OPGAVEN CAT 4 Food truck festival De laatste jaren zijn food trucks erg populair geworden: het zijn combi s of aanhangwagens waarin gerechten gemaakt worden, en die worden dan
Nadere informatieHandleiding Japanse puzzels
Handleiding Japanse puzzels versie : 1.0 wijziging : 26-4-2010 Inhoud 1.Japanse puzzel...4 1.1.Speler...4 1.2.Kleur...4 1.3.Groep...4 1.4.Favoriet...4 1.5.Puzzel...4 1.6.Prima...5 1.7.Spel...5 1.8.Stap
Nadere informatieInhoud. Voorwoord. Het materiaal Doel van het spel Verloop van het spel Slaan en atari Zelfmoord Ko Oog Twee ogen Einde van het spel Puzzels
GO spelregels Inhoud Voorwoord 3 碁 Het materiaal Doel van het spel Verloop van het spel Slaan en atari Zelfmoord Ko Oog Twee ogen Einde van het spel Puzzels 4 5 6 7 9 0 3 4 Varianten 5 Voorwoord l vierduizend
Nadere informatieHandleiding Opdrachtkaarten maken.
Handleiding Opdrachtkaarten maken. Met de schaakapplicatie op Schaakelaar.nl kun je eenvoudig opdrachten maken, beheren en afdrukken. Er is keuze uit verschillende lay-outs. Zo zou je voor opdrachten die
Nadere informatieInformatie gebruik Digi Bord
Informatie gebruik Digi Bord Aan de slag Schakel de pc en de beamer aan en het bord is te gebruiken. Het bord hoeft u niet apart aan te zetten. De pen is nu alleen te gebruiken als muis. Beamer De beamer
Nadere informatieKerstvakantiecursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter
Voorbereidende opgaven VWO Kerstvakantiecursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk
Nadere informatieComputationale Intelligentie Dirk Thierens
Computationale Intelligentie Dirk Thierens Organisatie Onderwijsvormen: Docent: Topic: Collegemateriaal: Boek: Beoordeling: hoorcollege, practicum, werkcollege Dirk Thierens Deel : Zoekalgoritmen Toets
Nadere informatieWaarom ga je schrijven? Om mensen ervan te overtuigen dat een plek in je buurt opgeknapt moet worden.
week 11 10 maart 2014 - Schrijfopdrachten niveau A, les 1 Les 1: Welke plek in de buurt moet opgeknapt worden? Waarom ga je schrijven? Om mensen ervan te overtuigen dat een plek in je buurt opgeknapt moet
Nadere informatieHandleiding Mijneigenweb.nl
Handleiding Mijneigenweb.nl Inhoud 1 Inloggen 2 Kleurenschema en lettertype 2.1 Kies een standaard kleurenschema 2.2 Kleurenschema en lettertypes aanpassen/ zelf samenstellen 3 Logo 4 Visual 4.1 Eigen
Nadere informatieStroomschema 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 informatieBijlage Inlezen nieuwe tarieven per verzekeraar
! Bijlage inlezen nieuwe tarieven (vanaf 3.2) Bijlage Inlezen nieuwe tarieven per verzekeraar Scipio 3.303 biedt ondersteuning om gebruikers alle tarieven van de verschillende verzekeraars in één keer
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieHoe? RIVER CROSSING. Taal 1. Waar? Tijd? Extra? SPEL DENK
RIVER CROSSING Taal 1 2 Eén van jullie heeft de oplossingen voor zich, de ander het spelbord. Degene die de oplossingen heeft legt zonder aan te wijzen uit welke stappen de ander moet zetten om de opgave
Nadere informatieOEFENINGEN PYTHON REEKS 6
OEFENINGEN PYTHON REEKS 6 1. A) Schrijf een functie die een getal x en een getal y meekrijgt. De functie geeft de uitkomst van volgende bewerking als returnwaarde terug: x y x als x y x y y als x < y B)
Nadere informatieAan 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 informatieRUBRICEREN, UPDATEN EN BESTANDEN VERWIJDEREN
RUBRICEREN, UPDATEN EN BESTANDEN VERWIJDEREN RUBRICEREN, UPDATEN, VERWIJDEREN Met dit werkblad ga je oefenen met het rubriceren van apps, het updaten van apps en het verwijderen van bestanden van je smartphone
Nadere informatieInhoudstabel. Habils Kenny 2
Inhoudstabel Inhoudstabel... 2 1. Inleiding... 3 2. Arceerpatroon definiëren... 3 Hoe is een arceerpatroon samen gesteld.... 4 Opmerkingen... 5 Hoe laad je nu uw aangemaakte patronen... 5 Kan je uw arceerpatronen
Nadere informatie9.19 Macro s: oefeningen
9.19 Macro s: oefeningen Oefening 84.: Macro relatief opnemen Open een nieuwe map. Plaats uw invoercel ergens in de linker-bovenhoek van het blad (bijvoorbeeld in B2). Start het opnemen van een macro met
Nadere informatieInhoudsopgave Voorwoord 7 Nieuwsbrief 7 De website bij het boek 7 Introductie Visual Steps 8 Wat heeft u nodig? 8 Uw voorkennis 9 Bonushoofdstukken
Inhoudsopgave Voorwoord... 7 Nieuwsbrief... 7 De website bij het boek... 7 Introductie Visual Steps... 8 Wat heeft u nodig?... 8 Uw voorkennis... 9 Bonushoofdstukken... 9 Hoe werkt u met dit boek?... 10
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieExamen Discrete Wiskunde donderdag 12 april, 2018
Examen Discrete Wiskunde 2017-2018 donderdag 12 april, 2018 De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Gebruik hiervoor de ruimte onder de vraag; er is in principe genoeg
Nadere informatieExamen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar Januari, **BELANGRIJK** : Schrijf je naam onderaan dit blad
Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar 2006-2007 23 Januari, 2007 **BELANGRIJK** : Schrijf je naam onderaan dit blad Leg volgende 3 begrippen kort en bondig uit : a. Concurrent
Nadere informatieInternational Olympiad in Informatics 2013
International Olympiad in Informatics 2013 6-13 July 2013 Brisbane, Australia wombats Nederlands (België) 1.1 Brisbane wordt overspoeld door grote gemuteerde wombats, en jij moet de inwoners in veiligheid
Nadere informatieContainers stapelen. M.L. Koning april 2013
Technische Universiteit Eindhoven 2WH03 - Modelleren C Containers stapelen L. van Hees 0769244 M.L. Koning 0781346 2 april 2013 Y.W.A Meeuwenberg 0769217 1 Inleiding De NS vervoert dagelijks grote hoeveelheden
Nadere informatieRecursion. 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 informatieExamencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter
Voorbereidende opgaven VWO Examencursus wiskunde A Tips: Maak de voorbereidende opgaven voorin in een van de A4-schriften die je gaat gebruiken tijdens de cursus. Als een opdracht niet lukt, werk hem dan
Nadere informatieImplementatie en toepassing van de trie
Implementatie en toepassing van de trie Tweede programmeeropdracht Datastructuren, najaar 2007 Een Trie is een char-aire boom, dwz. een boom waarvan knopen voor elk van de elementen van het type char (
Nadere informatie