Opdracht 3: Dodo verdeelt haar werk

Maat: px
Weergave met pagina beginnen:

Download "Opdracht 3: Dodo verdeelt haar werk"

Transcriptie

1 Opdracht 3: Dodo verdeelt haar werk Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) c 2017 Renske Smetsers-Weeda & Sjaak Smetsers 1 Inhoudsopgave Inleiding 1 Leerdoelen 1 Instructies 1 Theorie Submethodes ontwerpen Een probleem opdelen in kleinere delen Lay-out van code Logische operatoren Je initiële wereld instellen Een wereld opslaan Tekst gebruiken Uitdagingen Submethodes gebruiken Oefenen met logische operatoren Leg een ei in ieder nest Geen dubbele eieren Door een tunnel lopen Naar het nest lopen en hekken ontwijken Om een omheining lopen Spoor van eieren volgen tot het nest Eenvoudige doolhof Lastigere doolhof Dodo maakt wilde sprongen Reflectie 17 Opslaan en inleveren 18 1 Licensed under the Creative Commons Attribution 4.0 license:

2 Inleiding In de vorige opgaven maakte je kennis met Greenfoot en algoritmisch denken. Je bent in staat om code te lezen, deze aan te passen en om zelf code te schrijven. Ook kun je generieke oplossingen bedenken en implementeren. In deze opdracht zul je leren om je oplossing te ontwerpen door deze op te splitsen in verschillende losse onderdelen. Zo wordt het makkelijker om te programmeren, te testen en je geschreven code opnieuw te gebruiken. Door problemen op te delen in kleinere stukken wordt het makkelijker om complexere problemen op te lossen. Doelen Het doel van deze opdracht is: Problemen opdelen in kleinere behapbare delen. Leerdoelen Na het voltooien van deze opdracht kun je: een (complex) probleem opdelen in deelproblemen. decompositie toepassen in stroomdiagrammen en code door submethodes te herkennen. submethodes afzonderlijk ontwerpen, schrijven en testen. de rol van het resultaattype en de parameter(s) van een methode omschrijven. bestaande submethodes en oplossingen opnieuw gebruiken. conditionele expressies samenstellen door logische operatoren te combineren. nesting toepassen als strategie voor het oplossen van complexere problemen. generieke oplossingen ontwikkelen. jouw oplossing beoordelen. Instructies In deze opdracht ga je verder met je eigen code uit de vorige opdracht. Maak een kopie van jouw scenario zodat je altijd nog terug kan naar een vorige versie. Een kopie maken doe je zo: Open jouw scenario van de vorige opdracht. In de Greenfoot menu, bovenaan het scherm, selecteer je Scenario en dan Save As.... Ga naar de folder waarin je jouw werk voor opdracht 3 wilt opslaan. Kies een bestandsnaam met jouw eigen naam en opdrachtnummer, bijvoorbeeld: Opdr3_John. Tijdens de opdracht zul je wat vragen moeten beantwoorden. Je moet het volgende inleveren: Alle stroomdiagrammen: gebruik potlood en papier, of maak gebruik van de software op https: // Jouw code: het bestand MyDodo.java bevat al jouw code en moet ingeleverd worden; Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 1

3 Het reflectieblad: vul in en lever het in. Je moet al jouw antwoorden met je partner te bespreken. Noteer kort jullie antwoorden. Er zijn drie soorten taken: Aanbevolen. Leerlingen met weinig programmeerervaring, of leerlingen die wat meer oefening nodig hebben, moeten deze taken allemaal afmaken. Verplicht. Iedereen moet deze taken afmaken. Uitdagend. Complexere taken, ontwikkeld voor leerlingen die de 2-ster opdrachten voltooid hebben en klaar zijn voor een grotere uitdaging. Leerlingen die 1-ster taken overslaan moeten alle 3-ster taken maken. Opmerking: In deze opdracht mag je alleen aanpassingen maken in MyDodo; Je mag methodes gebruiken uit de MyDodo of Dodo klasse, maar niet uit de Actor klasse; Teleporteren is niet toegestaan: als Mimi ergens moet zijn, dan moet ze daar zelf stap voor stap heenlopen (ze mag er niet in één keer naar toe springen). Theorie Theorie 3.1: Submethodes ontwerpen Wanneer een reeks taken herhaald wordt, kan het handig zijn om deze in een aparte submethode te zetten. Als je dan die reeks nodig hebt, hoef je alleen die submethode aan te roepen. Dat scheelt veel foutgevoelig typewerk en maakt daarnaast het testen en hergebruik makkelijker. Voorbeeld Om een stap achteruit te zetten moet Mimi: 180 graden draaien (bijvoorbeeld door twee keer turnright( ) aan te roepen), een stap zetten en dan, weer 180 graden draaien (weer door twee keer turnright( ) aan te roepen). Als Mimi nu een paar stappen achteruit moet zetten en je zou, om dit te realiseren, de code voor het zetten van één stap achteruit steeds dupliceren dan krijg je op die manier wel erg veel instructies. In zo n geval is het veel beter om een submethode public void steponecellbackwards( ) te schrijven. / ** * Move one cell backwards * * <p>initial situation is same as final situation. * * / public void steponecellbackwards( ) { turnright( ); turnright( ); Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 2

4 } move(); turnright( ); turnright( ); Die methode kun je steeds aanroepen met steponecellbackwards( );. Zie de code hieronder. public void methodeonecellbackwardsgebruiken( ) { // deel van een methode steponecellbackwards( ); // rest van de methode } Theorie 3.2: Een probleem opdelen in kleinere delen Een complex probleem (en zijn oplossing), wordt eenvoudiger als je het opdeelt in kleinere behapbare onderdelen. In programmacode vormen deze delen aparte submethodes. Elke submethode kan afzonderlijk ontworpen, ontwikkeld en getest worden (zie Theorie 3.1). Submethodes worden daarna gecombineerd tot een totaaloplossing voor het probleem als geheel. Deze aanpak waarin een groot probleem wordt opgedeeld in meerdere kleinere deelproblemen heet decompositie. Figuur 1: Een probleem in kleine problemen opdelen en deze afzonderlijk aanpakken Decompositie wordt toegepast bij: complexe problemen: als een probleem of reeks van taken zo ingewikkeld is dat het beter (overzichtelijker en minder foutgevoelig) is om deze afzonderlijk te ontwerpen, te ontwikkelen en te testen. herhaling: als dezelfde reeks van stappen meerdere keren wordt herhaald. veel afzonderlijke stappen: als een algoritme moeilijk te lezen of te begrijpen is doordat het bestaat uit heel veel gedetailleerde stappen (bijvoorbeeld, meer dan zeven). samenhangende stappen: als een reeks van stappen samen een redelijk op zichzelf staande taak of module vormen (die mogelijk ergens anders of in een later stadium opnieuw gebruikt kan worden). Door decompositie wordt code makkelijker te begrijpen (lezen), te testen, opnieuw te gebruiken, aan te passen en uit te breiden. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 3

5 Theorie 3.3: Lay-out van code Code wordt beter leesbaar door steeds dezelfde stijl te gebruiken. Net als naamgeving, zijn er ook stijlafspraken. Door steeds op dezelfde wijze in te springen kun je bepaalde fouten voorkomen. Zo zie je bijvoorbeeld sneller of je een haakje of accolade te veel of te weinig hebt. De volgende twee voorbeelden laten duidelijk het voordeel zien van het uitlijnen van code. public void move() { if ( canmove() ) { step(); } else { showerror( "I m stuck!" ); // prints to the console. } } public void move( ) { if ( canmove( ) ) { step( ); } else { showerror( "I m stuck!" ); // prints to the console. } } Zie voor een compleet overzicht van stijl- en naamgevingsafspraken. Greenfoot kan je trouwens helpen om jouw code uit te lijnen. Gebruik hiervoor Ctrl-Shift-I. Theorie 3.4: Logische operatoren De EN (in programmacode: &&), de OF (in code: ) en de NIET (in code:!) heten logische operatoren. Logische operatoren kunnen handig zijn bij het vormen van beslissingen, omdat ze je in staat stellen boolean methodes te combineren. Op die manier kun je conditionele expressies samenstellen die bepaalde keuzes heel specifiek omschrijven. Operator Betekenis Voorbeeld && EN facingnorth( )&& fenceahead( ) OF fenceahead( ) borderahead( )! NIET!fenceAhead( ) Logische operatoren combineren Met logische operatoren kun je complexere conditionele expressies maken. Hierdoor wordt jouw code mogelijk eenvoudiger. Echter, het combineren van logische operatoren, in het bijzonder met een negatie (de NIET) kan ook tot lastig te begrijpen uitdrukkingen leiden. Daarnaast is het raadzaam om haakjes te gebruiken om duidelijk te maken wat bij elkaar hoort. Expressie Is gelijk aan Betekenis!( A && B )!A!B Is waar zodra één van beide A of B niet waar is!( A B )!A &&!B Is alleen waar als geen van beide A or B waar is Voorbeelden NIET (slaan OF trappen) wordt!(slaan trappen) wat hetzelfde betekent als!slaan &&! trappen. Oftewel je mag geen van beide doen. NIET (sokken EN sandalen) wordt!(sokken && sandalen) wat hetzelfde betekent als!sokken!sandalen. Oftewel, je mag of het een of de ander, maar niet allebei (wat er ook en beetje gek uitziet, vind je niet?). Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 4

6 Theorie 3.5: Je initiële wereld instellen Wil je dat steeds een bepaalde wereld geopend wordt en dat je dus niet telkens weer opnieuw alle objecten in de wereld hoeft te plaatsen (bijvoorbeeld nadat je je code hebt aangepast), volg dan deze instructies waarmee we de wereld, als voorbeeld, de wereld worldemptyneststoprow laden: 1. Klik in het klassendiagram met de rechtermuisknop op Mauritius. 2. Kies Open Editor 3. Bovenin staat de volgende declaratie: Figuur 2: Opent een lege wereld (beginsituatie) 4. Vervang de bestandsnaam van de wereld (hetgeen vóór de.txt ) met de wereld die je wil openen (bijvoorbeeld worldemptyneststoprow ). Het ziet er dan zo uit: Figuur 3: Opent worldemptyneststoprow bestand Theorie 3.6: Een wereld opslaan Volg deze stappen om een wereld op te slaan: 1. Klik in de wereld met de rechtermuisknop op een lege cel. 2. Kies savetofile( ). 3. De wereld is nu opgeslagen met de naam saved.txt in de map worlds. Je kunt in deze map het bestand zelf een andere, zinvollere naam geven. Bedenk ook dat wanneer je twee of meerdere keren savetofile( ) gebruikt, de oude saved.txt zal worden overschreven. Theorie 3.5 omschrijft hoe je elke keer een bepaalde wereld kan laden. Theorie 3.7: Tekst gebruiken In Java (en ook in veel andere programmeertalen) wordt een tekst een String genoemd. String is een type, net zoals int en boolean. Methodes kunnen een String (oftewel tekst) als parameter meekrijgen. Je hebt er al een gebruikt om tekst naar de console af te drukken (zie Theorie 1.14). Om een tekst in een programma te kunnen gebruiken, moet je deze altijd tussen dubbele aanhalingstekens zetten. Zo definieer je een String: String text1 = "Hello"; Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 5

7 Zo geef je een String als parameter mee: String textgreeting = "Hello"; System.out.println ( textgreeting ); Het resultaat ziet er zo uit: Twee Strings plak je aan elkaar (concatenatie) met +. String textgreetingmimi = "Hello " + "Mimi"; System.out.println ( textgreetingmimi ); Het resultaat ziet er zo uit: Een String en een int variable int nrofeggsfound voeg je ook samen met +. int nrofeggs = 5; String textifound = "I have found "; System.out.println ( textifound + nrofeggs + " eggs today" ); Het resultaat ziet er zo uit: Dit is soms een beetje verwarrend omdat de + ook gebruikt kan worden voor het optellen van twee ints. Zoek zelf maar eens uit wat het verschil is tussen "= 2" en "2 = " De methode showcompliment(string compliment) krijgt een String met de naam compliment als parameter mee. De methode levert een smiley op samen met het compliment zelf. De volgende twee voorbeelden van programmacode leveren precies hetzelfde resultaat op. Het resultaat zie je in figuur 4. showcompliment( "Congradulations!" ); en String textcongradulations = "Congradulations!"; showcompliment( textcongradulations ); Figuur 4: Resultaat van beide stukjes code Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 6

8 Uitdagingen Lees eerst Theorie 3.1: Submethodes ontwerpen. Lees eerst Theorie 3.2: Een probleem opdelen in kleinere delen. Opgave 3.1: Submethodes gebruiken Bij taak 2.5 heb je de methode boolean grainahead( ) geschreven die controleerde of er een graan in de cel voor Mimi lag (zie stroomdiagram 5). Figuur 5: Stroomdiagram voor grainahead De volgende taak is om submethodes te gebruiken om de code van boolean grainahead( ) op te schonen. a) Schrijf een methode stepback ( ) waarmee Mimi één stapje achteruit zet. Na afloop moet ze nog altijd in de oorspronkelijke richting kijken. Voeg ook JavaDoc commentaar toe. b) Vervang de omcirkelde code door een aanroep van stepback, zoals in het volgende stroomdiagram: Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 7

9 Figuur 6: Stroomdiagram voor grainahead door gebruik te maken van de submethode stepback c) Test jouw programma. d) Kun je nog meer code opruimen in de grainahead methode? e) Test jouw programma opnieuw ook al heb je slechts kleine wijzigingen aangebracht. Lees eerst Theorie 3.3: Lay-out van code. Lees eerst Theorie 3.4: Logische operatoren. Opgave 3.2: Oefenen met logische operatoren De logische operatoren EN, OF NIET worden vaak verkeerd begrepen, zeker als ze in combinaties voorkomen. Daarom oefenen we er nu even mee. a) In een bus hangt een bord: Zittend 15 staand 3 OF 13 zittend + 1 rolstoel. Vul de volgende twee uitspraken aan: Specifieker: (zittend IS GELIJK AAN 15 EN staand IS GELIJK AAN 3)OF... En dit vertalen naar programmacode wordt: (zittend == 15 && staand == 3)... b) Wat wil je vanavond eten? Plaats haakjes op de juiste plek en vertaal het vervolgens naar programmacode: Frietjes en frikandel of kroket en een blikje. c) Honden en katten gaan niet samen, dat wordt ruzie. Haal de haakjes weg en pas de uitspraak aan zodat deze nog altijd hetzelfde betekent: NIET (honden EN katten) d) We kunnen niet naar buiten als het regent of onweert. Haal de haakjes weg en pas de uitspraak aan zodat deze nog altijd hetzelfde betekent: NIET (regen OF onweer) Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 8

10 Lees eerst Theorie 3.5: Je initiële wereld instellen. Lees eerst Theorie 3.6: Een wereld opslaan. Opgave 3.3: Leg een ei in ieder nest Jouw taak is: Mimi loopt naar de grens van de wereld. Als ze onderweg een nest tegenkomt, legt ze er een ei in. Zorg ervoor dat jouw algoritme generiek is. Het moet dus werken in elke wereld, ook als een nest iets naar links of rechts wordt verplaatst, of als er een extra nest wordt toegevoegd. a) Open de worldemptyneststoprow wereld. b) Vul de lege plekken in de stroomdiagram in figuur 7 aan. Figuur 7: Stroomdiagram voor het vullen van nestjes tot aan de grens van de wereld c) Schrijf de bijbehorende programmacode (en commentaar). Zorg er ook voor dat jouw code uitgelijnd is (zie Theorie 3.3). d) Test jouw methode door met je rechtermuisknop op Mimi te klikken en de methode aan te roepen. Tip: Theorie 3.5 omschrijft hoe je elke keer een bepaalde wereld kan laden. e) Werkt het programma zoals je verwacht? Er zit een fout in het stroomdiagram. Kun jij die vinden? f) Hoe zou je het stroomdiagram aan kunnen passen? Pas de code aan met jouw verbetervoorstel. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 9

11 g) Test opnieuw. Je hebt nu een if..then..else.. genest in een while-loop. Opgave 3.4: Geen dubbele eieren Jouw volgende taak is: Mimi loopt naar de grens van de wereld. Als ze onderweg een nest tegenkomt waar nog geen ei in ligt, legt ze er een ei in. a) Open de worldemptyneststoprow wereld en plaats een ei in een aantal nestjes. Tip: Theorie 3.5 omschrijft hoe je elke keer een bepaalde wereld kan laden. b) Omschrijf de begin- en eindsituaties. c) Teken een stroomdiagram. d) Schrijf en test de bijbehorende code (met commentaar). Zorg er ook voor dat jouw code netjes uitgelijnd is (zie Theorie 3.3). Afhankelijk van de door jouw gekozen oplossing heb je nu nesting (van if..else..) of combinaties van logische operatoren gebruikt om een complexere voorwaarde te omschrijven. Opgave 3.5: Door een tunnel lopen Jouw taak is om Mimi te leren om door een tunnel (van hekjes) te lopen (zie figuur 8), en te stoppen als ze uit de tunnel komt (zie figuur 9). Figuur 8: Beginsituatie Figuur 9: Eindsituatie We delen dit probleem eerst op in deelproblemen die ieder afzonderlijk aangepakt kunnen worden: Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 10

12 Figuur 10: Het probleem opdelen in deelproblemen die ieder afzonderlijk aangepakt worden a) Schrijf en test een submethode die controleert of er links van Mimi een hek staat. b) Schrijf en test een vergelijkbare submethode die controleert of er rechts van Mimi een hek staat. Je mag natuurlijk gebruik maken van jouw methodes boolean fenceonleft( ) en boolean fenceonright ( ). c) Maak gebruik van deze submethodes om een methode void walkthroughtunnel( ) te schrijven. Je kunt de worldtunnel wereld gebruiken om te testen (Theorie 3.5 beschrijft hoe je deze kan openen). d) Test jouw void walkthroughtunnel( ) methode. Je hebt nu zelf gebruik gemaakt van abstractie om een groter probleem op te splitsen in kleinere delen. Met het verdeel-en-heers principe heb je de kleinere delen ontworpen, geïmplementeerd en getest (methodes fenceonright ( ) en fenceonleft ( )). Daarna heb je deze gebruikt in walkthroughtunnel( ) en het geheel getest. Wie weet, misschien wil je straks in een volgende opgave gebruik maken van één van jouw methodes (bijvoorbeeld fenceonright ( )). Omdat je er nu een aparte methode van gemaakt hebt is hergebruik een stuk makkelijker. Dit noemen we ook wel modularisatie. Lees eerst Theorie 3.7: Tekst gebruiken. Opgave 3.6: Naar het nest lopen en hekken ontwijken Mimi zoekt haar nest. Als ze onderweg een hek tegenkomt, moet ze daar overheen klimmen. Als ze haar nest heeft gevonden moet ze er een ei in leggen en stoppen. Heeft ze het einde van de wereld bereikt voordat ze haar nest gevonden heeft, dan moet ze stoppen en in een pop-up venster een geschikte foutmelding geven. Tips: Schets eerst een stroomdiagram op hoog niveau. Het kan handig zijn om terug te kijken naar taak 2.9 waar je de code hebt geschreven voor walktoworldedgeclimbingoverfences( ). Laad de worldfencesandnest wereld. Om een pop-up foutmelding te tonen maak je gebruik van: showerror( String message) Opgave 3.7: Om een omheining lopen In deze opdracht laat je Mimi om een omheining heen lopen. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 11

13 a) Open de worldfencedarea wereld. b) Bepaal de begin- en eindsituaties. Bedenk een geschikt algoritme. Tip: Om te voorkomen dat Mimi oneindig veel rondjes om het hek heen wandelt gaan we ervan uit dat in het laatste vakje van de route om de omheining een ei ligt. Als ze gaat lopen en dat ei tegenkomt, dan weet ze dat ze klaar is. c) Schrijf de bijbehorende methode void walkaroundfencedarea( ) waarmee Mimi om de omheining heen loopt. Schrijf daar ook (JavaDoc) commentaar bij. d) Compileer en test het programma. Controleer ook of jouw programma werkt bij een grotere omheining. e) Voor welke beginsituaties werkt jouw programma? Indien nodig, pas de beschrijving van jouw beginsituatie aan. f) Test ook of jouw methode werkt met een andere wereld, zoals: worldotherfencedarea. Pas het algoritme (en dus ook het stroomdiagram en code) dusdanig aan dat het ook hiervoor werkt. Figuur 11: Een andere omheining Je hebt nu een generieke methode geschreven waarmee Mimi om een willekeurige omheining kan lopen. Je hebt daarbij mogelijk gebruik gemaakt van modularisatie door (bestaande en geteste) methodes te opnieuw te gebruiken. Opgave 3.8: Spoor van eieren volgen tot het nest Er ligt een spoor van eieren naar het nest van Mimi. Kan jij Mimi helpen om haar nest te vinden? (zie wereld: worldeggtrailtonest ). Figuur 12: Taak: volg het spoor van eieren tot aan het nest Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 12

14 We delen het probleem op in deelproblemen die stapsgewijs los van elkaar opgelost kunnen worden. a) Teken een stroomdiagram op hoog niveau dat aangeeft welke submethodes je moet ontwerpen en schrijven. b) Voor elke submethode: Kies een geschikte naam (en returntype); Bepaal de begin- en eindsituaties. Schrijf en test de submethode. c) Gebruik makend van deze submethodes, schrijf en test jouw oplossing als geheel. d) Controleer of jouw programma ook werkt voor een ander pad van eieren. Test deze ook met world followeggtrailbehinduntilnest. Wellicht kom je tot de ontdekking dat je nog wat moet verbeteren. e) Reflecteer over jouw aanpak. Wat ging goed? Wat kun je volgende keer beter anders doen? Opgave 3.9: Eenvoudige doolhof Help jij Dodo weer haar nest te vinden? Hiervoor moet je haar helpen om haar weg door de doolhof te vinden. Jouw oplossing moet natuurlijk weer generiek zijn: Dodo moet haar weg door een willekeurige doolhof vinden, niet alleen voor de doolhof uit het plaatje. Je mag van het volgende uitgaan: De wereld is omgeven door hekken. Er is precies één nest. Er bestaat een route naar het nest. Het nest ligt direct naast een hek. Aan het begin is er maar één richting waarin Dodo kan lopen. Het doolhof bevat geen doodlopende paden. Verder zijn er geen eilanden van hekjes: ieder hekje is verbonden met de omheining. Schrijf een methode waarmee Dodo het nest vindt. a) Bedenk een geschikt algoritme en teken een stroomdiagram op hoog niveau. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 13

15 b) Ontwikkel, implementeer en test de submethodes voor jouw algoritme één voor één. c) Test jouw programma voor de volgende doolhoven: world doolhoflevel1a. world doolhoflevel1b. world doolhoflevel1c. d) Beoordeel jouw programma. Welke verbeteringen kun je bedenken? Je hoeft ze niet per se door te voeren, je hoeft ze alleen op te sommen. Opgave 3.10: Lastigere doolhof Help jij Dodo haar nest te vinden door een wat ingewikkeldere doolhof? Geef Mimi ook een complimentje (maak gebruik van een pop-up venster) als ze haar nest gevonden heeft. Jouw oplossing moet natuurlijk weer generiek zijn. Je mag van het volgende uitgaan: Er is één nest. Er bestaat een route naar het nest. De wereld is omgeven door een hekken. Het nest ligt direct naast een hek. Er zijn geen eilanden van hekjes: ieder hekje is verbonden met de omheining. Schrijf een methode waarmee Dodo het nest vindt. a) Bedenk een geschikt algoritme en teken een stroomdiagram op hoog niveau. b) Ontwikkel, implementeer en test de submethodes voor jouw algoritme één voor één. c) Test jouw programma als geheel voor de volgende doolhoven: worldmazelevel2a. worldmazelevel2b. worldmazelevel2c. d) Maak zelf ook een nieuwe doolhof. Wissel jouw doolhof uit met een medeleerling. Test jouw programma daarmee. Vergelijk elkaars oplossingen. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 14

16 Opgave 3.11: Dodo maakt wilde sprongen Nu is het tijd voor een meer uitdagende algoritmisch denken puzzel. Stel we hebben een methode jumptoend( ). Hiermee kan Mimi herhaaldelijk stappen zetten totdat ze niet meer verder kan (er staat een hek in de weg of ze heeft de grens van de wereld bereikt): public void jumptoend( ) { while (! borderahead( ) &&! fenceahead( ) ){ step( ); } } De jumptoend( ) methode wordt aangeroepen in gowild( ). Figuur 13: Stroomdiagram voor de methode gowild( ) Het scenario wordt uitgevoerd door gowild aan te roepen. Hieronder staan drie verschillende beginsituaties: Figuur 14: A Figuur 15: B Figuur 16: C a) Stopt Mimi als je uitgaat van beginsituatie A? Zo ja, hoe vaak wordt de jumptoend( ) methode aangeroepen? Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 15

17 b) Stopt Mimi als je uitgaat van beginsituatie B? Zo ja, hoe vaak wordt de jumptoend( ) methode aangeroepen? c) Controleer jouw antwoorden door een printopdracht toe te voegen aan de code. (Theorie 1.14 en Theorie 3.7 beschrijven hoe je tekst naar de console kunt afdrukken). d) We gaan uit van beginsituatie C. Door in de wereld hekken op bepaalde plekken neer te zetten kun je ervoor zorgen dat Mimi het ei vindt. Kun je hekken in figuur C neerzetten zodat Mimi haar ei vindt als je de gowild( ) methode aanroept? Er zijn twee eisen: Je mag hooguit vijf hekken gebruiken. Je mag geen hek naast een wereldgrens plaatsen. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 16

18 Reflectie In deze opdracht heb je geoefend met het ontwerpen van code als losse componenten. Daardoor wordt het makkelijk om oplossingen te bedenken, schrijven, testen en opnieuw te gebruiken. Als je ergens echt goed in wilt worden, dan is een van de meest belangrijke stappen om even terug te blikken op wat je deed en hoe dat ging: Resultaat Ik weet dat mijn oplossing werkt omdat... Ik ben trots op mijn oplossing omdat... Ik kan mijn oplossing verbeteren door... Aanpak Mijn aanpak was goed omdat... Wat ik volgende keer beter anders kan doen is... Geef met een smiley aan hoe het ging. Ik kan het Het is me een beetje gelukt maar ik begreep het niet helemaal Ik snapte er helemaal niks van Ik kan een algoritme beschrijven in een hoog-niveau stroomdiagram. Ik kan submethodes in een algoritme herkennen. Ik kan submethodes afzonderlijk ontwerpen, schrijven en testen. Ik kan conditionele expressies samenstellen door logische operatoren te combineren. Ik kan generieke oplossingen ontwikkelen. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 17

19 Opslaan en inleveren Sla je werk op. Je hebt het nodig voor de volgende opdrachten. Opslaan Selecteer Scenario in het Greenfoot menu, en dan Save. Alle bestanden die bij het scenario horen zitten nu in één map. Inleveren Lever het volgende in: Naam: van jou (en je partner); Jouw code: Het MyDodo.jav java bestand; Stroomdiagrammen: Als je ze op papier hebt gemaakt: plak (foto s van) jouw stroomdiagrammen in een (Word) bestand. Als je software gebruikt hebt: sla het bestand op als.pdf of.jpg. Algoritmisch denken en gestructureerd programmeren (in Greenfoot) 18

Opdracht 4: Overzichtelijker en generieker

Opdracht 4: Overzichtelijker en generieker Opdracht 4: Overzichtelijker en generieker Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van

Nadere informatie

Opdracht 4: Overzichtelijker en generieker

Opdracht 4: Overzichtelijker en generieker Opdracht 4: Overzichtelijker en generieker Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van

Nadere informatie

Opdracht 3: Betere oplossingen

Opdracht 3: Betere oplossingen Opdracht 3: Betere oplossingen Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Opdracht 3: Betere oplossingen

Opdracht 3: Betere oplossingen Opdracht 3: Betere oplossingen Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Opdracht 7: Dodo s Race

Opdracht 7: Dodo s Race Opdracht 7: Dodo s Race Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) c 2017 Renske Smetsers-Weeda & Sjaak Smetsers 1 Inhoudsopgave Inleiding 1 Leerdoelen 1 Instructies 1 Theorie 2

Nadere informatie

Opdracht 5: Dodo heeft plannen

Opdracht 5: Dodo heeft plannen Opdracht 5: Dodo heeft plannen Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) c 2017 Renske Smetsers-Weeda & Sjaak Smetsers 1 Inhoudsopgave Inleiding 1 Leerdoelen 1 Instructies 1 Theorie

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

Opdracht 2: Dodo laten bewegen

Opdracht 2: Dodo laten bewegen Opdracht 2: Dodo laten bewegen Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) c 2017 Renske Smetsers-Weeda & Sjaak Smetsers 1 Inhoudsopgave Inleiding 1 Leerdoelen 1 Instructies 1 Theorie

Nadere informatie

Opdracht 2: Constructies

Opdracht 2: Constructies Opdracht 2: Constructies Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing. https://creativecommons.org/licenses/by/4.0/

Nadere informatie

Opdracht 4: Dodo wordt slimmer

Opdracht 4: Dodo wordt slimmer Opdracht 4: Dodo wordt slimmer Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) c 2017 Renske Smetsers-Weeda & Sjaak Smetsers 1 Inhoudsopgave Inleiding 1 Leerdoelen 1 Instructies 2 Theorie

Nadere informatie

Opdracht 6: Dodo wordt blijvend slimmer

Opdracht 6: Dodo wordt blijvend slimmer Opdracht 6: Dodo wordt blijvend slimmer Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Opdracht 1: Maak kennis met Dodo

Opdracht 1: Maak kennis met Dodo Opdracht 1: Maak kennis met Dodo Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) c 2017 Renske Smetsers-Weeda & Sjaak Smetsers 1 Inhoudsopgave Inleiding 1 Leerdoelen 2 Instructies 3 Theorie

Nadere informatie

Opdracht 6: Dodo wordt blijvend slimmer

Opdracht 6: Dodo wordt blijvend slimmer Opdracht 6: Dodo wordt blijvend slimmer Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Opdracht 5: Dodo wordt slimmer

Opdracht 5: Dodo wordt slimmer Opdracht 5: Dodo wordt slimmer Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Opdracht 5: Dodo wordt slimmer

Opdracht 5: Dodo wordt slimmer Opdracht 5: Dodo wordt slimmer Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) Inleiding 1. Leerdoelen 1. Instructies 1

Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) Inleiding 1. Leerdoelen 1. Instructies 1 Opdracht 6: Lijsten Algoritmisch Denken en Gestructureerd Programmeren (in Greenfoot) c 2017 Renske Smetsers-Weeda & Sjaak Smetsers 1 Inhoudsopgave Inleiding 1 Leerdoelen 1 Instructies 1 Theorie 2 6.1

Nadere informatie

Opdracht 1: Maak kennis met Dodo

Opdracht 1: Maak kennis met Dodo Opdracht 1: Maak kennis met Dodo Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Opdracht 8 Sokoban. Mimi kan een ei vooruit duwen; aan een ei trekken kan ze niet.

Opdracht 8 Sokoban. Mimi kan een ei vooruit duwen; aan een ei trekken kan ze niet. Opdracht 8 Sokoban Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing. 1 Inleiding

Nadere informatie

Algoritmisch Denken en Gestructureerd Programmeren

Algoritmisch Denken en Gestructureerd Programmeren Algoritmisch Denken en Gestructureerd Programmeren Martin Bruggink en Renske Smetsers-Weeda I&I, 8 november 2018 http://course.cs.ru.nl/greenfoot/ www.informaticaunplugged.nl Even voorstellen Renske Smetsers-Weeda

Nadere informatie

Algemene opzet cursus

Algemene opzet cursus Algemene opzet cursus Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing. https://creativecommons.org/licenses/by/4.0/

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

Opdracht 1: Maak kennis met Dodo

Opdracht 1: Maak kennis met Dodo Opdracht 1: Maak kennis met Dodo Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing.

Nadere informatie

Kennismaken Greenfoot

Kennismaken Greenfoot HOOFDSTUK 1 Kennismaken met Greenfoot onderwerpen: de interface van Greenfoot, omgaan met objecten, methodes aanroepen, een scenario uitvoeren concepten: object, klasse, methode-aanroep, parameter, retourwaarde

Nadere informatie

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers Nascholing Algoritmisch Denken Martin Bruggink Renske Smetsers Tip: bloemblaadjes rond de roos Tip: bloemblaadjes rond de roos: ABSTRACTIE!! Speerpunten bijeenkomst #3 Afrondend bijeenkomst Terugkoppeling

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

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers Nascholing Algoritmisch Denken Martin Bruggink Renske Smetsers Speerpunten bijeenkomst #2 Praktische bijeenkomst Hele ontwikkelcyclus doorlopen Algoritme ontwerpen Flowchart Code Reflectie Programma tweede

Nadere informatie

Simon de schildpad. 2015 J van Weert 1

Simon de schildpad. 2015 J van Weert 1 Programmeren met Simon Simon de schildpad 2015 J van Weert 1 Inleiding: Wat is programmeren eigenlijk? Een computer doet niets zonder een programma. Die programma s worden geschreven door mensen: programmeurs.

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

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

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

Nadere informatie

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers Nascholing Algoritmisch Denken Martin Bruggink Renske Smetsers Speerpunten bijeenkomst #2 Praktische bijeenkomst Hele ontwikkelcyclus doorlopen Algoritme ontwerpen Flowchart Code Reflectie Programma tweede

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

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

Simon de schildpad. 2012 J van Weert 1

Simon de schildpad. 2012 J van Weert 1 Programmeren met Simon Simon de schildpad 2012 J van Weert 1 Inleiding: Wat is programmeren eigenlijk? Een computer doet niets zonder een programma. Die programma s worden geschreven door mensen: programmeurs.

Nadere informatie

Scratch Rekenen & programmeren

Scratch Rekenen & programmeren Scratch Rekenen & programmeren Welkom bij deze Scratch workshop! Vandaag ga jij kennismaken met Scratch. Scratch is een online programmeertaal speciaal gemaakt voor kinderen vanaf 8 jaar. Ben je er klaar

Nadere informatie

Scratch les 1 Rekenen

Scratch les 1 Rekenen Scratch les 1 Rekenen Welkom bij deze Scratch workshop! Vandaag ga jij kennismaken met Scratch. Scratch is een programmeertaal speciaal gemaakt voor kinderen vanaf 8 jaar, dus dat moet ons als leerkrachten

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

Practicumopgave 3: SAT-solver

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

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers Nascholing Algoritmisch Denken Martin Bruggink Renske Smetsers Tip: bloemblaadjes rond de roos Tip: bloemblaadjes rond de roos: ABSTRACTIE!! Speerpunten bijeenkomst #3 Afrondend bijeenkomst Terugkoppeling

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

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

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

Nadere informatie

10. Mijn eerste programma

10. Mijn eerste programma 10. Mijn eerste programma Een korte handleiding voor het invoeren en editten van programmatekst voor een pseudotaal programma. In dit hoofdstuk wordt beschreven hoe je je allereerste pseudotaal programma

Nadere informatie

Module 2: Wat is Scratch?

Module 2: Wat is Scratch? Module 2: Wat is Scratch? Inhoudsopgave Module 2: Wat is Scratch?...1 Wat is Scratch?...2 Eerste stappen...3 Je eerste Scratch programma...6 Scratch coördinaten...7 Verander de achtergrond van je werkgebied...10

Nadere informatie

Een spoedcursus python

Een spoedcursus python Een spoedcursus python Zoals je in de titel misschien al gezien hebt, geven wij een spoedcursus Python. Door deze cursus leer je alle basics, zoals het rekenen met Python en het gebruik van strings. Het

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

PROS1E1 Handleiding ( ) Kf/Dd/Bd

PROS1E1 Handleiding ( ) Kf/Dd/Bd 1 Inleiding De eerste oefening In deze eerste oefening wordt het voorbeeld 2-1 van bladzijde 11 uit het boek De taal C van PSD tot C-programma (enigszins aangepast) ingevoerd in de computer. Tevens wordt

Nadere informatie

Stroomschema s maken op papier

Stroomschema s maken op papier 1 Stroomschema s maken op papier 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

Nadere informatie

afrondende suggesties worden gebruikt om dieper op het onderwerp in te gaan als daar tijd voor is.

afrondende suggesties worden gebruikt om dieper op het onderwerp in te gaan als daar tijd voor is. U UNPLUGGED Functie Bovenbouw: Liedjes schrijven met parameters Lestijd: 20 minuten Deze basisles omvat alleen oefeningen. Er kunnen inleidende en afrondende suggesties worden gebruikt om dieper op het

Nadere informatie

OPDRACHTKAART. Thema: Prepress. InDesign 15. Pagina s PP-01-15-01. Voorkennis: De vorige praktijkopdrachten afgerond.

OPDRACHTKAART. 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 informatie

Scratch les 2: Vissen vangen!

Scratch les 2: Vissen vangen! Scratch les 2: Vissen vangen! Diep in de zee Gerrie de diepzeevis heeft honger! Hij lust graag andere visjes, maar zorg dat hij zich niet verslikt in giftige vissen! Dit materiaal is gemaakt door Felienne.

Nadere informatie

Handleiding. Cv templates. Venbroekstraat AS Nieuwkuijk

Handleiding. Cv templates. Venbroekstraat AS Nieuwkuijk Handleiding Cv templates Inhoudsopgave Inhoudsopgave 2 Maak een keuze: 1 of 2 pagina s 3 Tekst wijzigen 3 Grootte van tekstblok wijzigen 3 Kleur of lettertype veranderen 3 Lettertypes installeren 3 Profielfoto

Nadere informatie

afrondende suggesties worden gebruikt om dieper op het onderwerp in te gaan als daar tijd voor is.

afrondende suggesties worden gebruikt om dieper op het onderwerp in te gaan als daar tijd voor is. U UNPLUGGED Liedjes schrijven Lestijd: 20 minuten Deze basisles omvat alleen oefeningen. Er kunnen inleidende en afrondende suggesties worden gebruikt om dieper op het onderwerp in te gaan als daar tijd

Nadere informatie

Opdracht 7: Dodo s race

Opdracht 7: Dodo s race Opdracht 7: Dodo s race Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing. https://creativecommons.org/licenses/by/4.0/

Nadere informatie

Meer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2.

Meer Blokken. 1. Dit is een functie genaamd Maximum, die twee argumenten heeft: number1 en number2. Meer Blokken Voorkennis: SuperDojo, Snake Leerdoelen: Meer Blokken Introductie Meer Blokken zijn Scratch s manier van functies. Functies zijn een heel belangrijk concept in alle programmeertalen. Het staat

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

Tips; fotoboek maken (bron: hema.nl)

Tips; fotoboek maken (bron: hema.nl) Tips; fotoboek maken (bron: hema.nl) tekst roteren Draai je tekst zodat het mooi onder of op je scheef geplaatste foto staat. Of maak zelf leuke labels in combinatie met clipart. 1. kies de clipart (bij

Nadere informatie

The knight s tour. Het paard in schaken beweegt als volgt: Steeds 1 vakje in een richting en 2 in een andere richting, of omgekeerd.

The knight s tour. Het paard in schaken beweegt als volgt: Steeds 1 vakje in een richting en 2 in een andere richting, of omgekeerd. The knight s tour In het Engels heet een paard uit schaken een Knight (Ridder). In het begin zaten er namelijk ridders op de paarden. (link wiki) Stel, je bent een paard uit het schaakspel en je staat

Nadere informatie

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Module 3: Scratch programmeren: is het logisch of is het niet logisch? Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2

Nadere informatie

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

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

Herhaling. Instructie. Controle Structuur. Functie. Programmeren is het samen plaatsen van onderdelen

Herhaling. Instructie. Controle Structuur. Functie. Programmeren is het samen plaatsen van onderdelen Herhaling Instructie Programmeren is het samen plaatsen van onderdelen Er bestaan 4 fundamentele stukken Instructie Controle structuur Functie Expressie Een instructie wordt uitgevoerd tijdens het uitvoeren

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

Werkschrift : Hoe werk ik op WikiKids?

Werkschrift : Hoe werk ik op WikiKids? Werkschrift : Hoe werk ik op WikiKids? WERKBOEK WIKIKIDS Welkom bij het werkboek van WikiKids. In dit werkboek staan opdrachten waarmee je stap voor stap leert werken met WikiKids. Er staan 15 opdrachten

Nadere informatie

Basistechnieken Microsoft Excel in 15 minuten

Basistechnieken Microsoft Excel in 15 minuten Basistechnieken Microsoft Excel in 15 minuten Microsoft Excel is een rekenprogramma. Je kan het echter ook heel goed gebruiken voor het maken van overzichten, grafieken, planningen, lijsten en scenario's.

Nadere informatie

Informatica. 2 e graad 2 e jaar. De Mol W.

Informatica. 2 e graad 2 e jaar. De Mol W. Informatica 2 e graad 2 e jaar De Mol W. Inhoudstafel Inhoudstafel... 2 Algoritmes... 3 1.1 Algemeen... 3 1.2 Het algoritme... 4 1.3 Opstellen van het algoritme... 5 1.4 Stapsgewijs verfijnen van het algoritme...

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

STROOMDIAGRAMMEN. Hoofdstuk 8. Hoe je Galgje moet spelen. Voorbeelduitvoer van Galgje. Hoofdstuk 8 Stroomdiagrammen 67

STROOMDIAGRAMMEN. Hoofdstuk 8. Hoe je Galgje moet spelen. Voorbeelduitvoer van Galgje. Hoofdstuk 8 Stroomdiagrammen 67 Hoofdstuk 8 STROOMDIAGRAMMEN Hoofdstuk 8 Stroomdiagrammen 67 In dit hoofdstuk behandelen we: Hoe je Galgje moet spelen ASCII-tekeningen Een programma ontwerpen met behulp van stroomdiagrammen In dit hoofdstuk

Nadere informatie

Werkboek studiekeuzecheck Opleiding HBO-ICT

Werkboek studiekeuzecheck Opleiding HBO-ICT Werkboek studiekeuzecheck Opleiding HBO-ICT Naam:... Beste aspirant-student, Gefeliciteerd! Je hebt de online vragenlijst over de opleiding HBO-ICT aan de HAN ingevuld. Daarna heb je zelf geconcludeerd

Nadere informatie

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel. Excel Inleiding Het woord computer betekent zoiets als rekenmachine. Daarmee is is eigenlijk aangegeven wat een computer doet. Het is een ingewikkelde rekenmachine. Zelf voor tekstverwerken moet hij rekenen.

Nadere informatie

I. Vorming 1 (12/04/2012) 1. Werken met een tekstverwerker p2 2. Mappenstructuur op een computer p6 3. Externe USB- stick gebruiken p10

I. Vorming 1 (12/04/2012) 1. Werken met een tekstverwerker p2 2. Mappenstructuur op een computer p6 3. Externe USB- stick gebruiken p10 INHOUDSTAFEL De inhoudstafel blijft in eerste instantie nog beperkt. Deze zal gestaag aangroeien en zal pas compleet zijn na de laatste vormingssessie. Het doel is om in de eerste sessie, samen met de

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Met Word een hoger cijfer halen. Word ken je al, toch kun je nog veel meer doen met Word. Nog beter leren omgaan met Word

Met Word een hoger cijfer halen. Word ken je al, toch kun je nog veel meer doen met Word. Nog beter leren omgaan met Word Nog beter leren omgaan met Word Met Word een hoger cijfer halen. Word ken je al, toch kun je nog veel meer doen met Word. Informatiekunde Omgaan met Word College De Heemlanden 2005. Informatiekunde Leerjaar

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

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

Opdracht 7: Dodo s race

Opdracht 7: Dodo s race Opdracht 7: Dodo s race Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van toepassing. https://creativecommons.org/licenses/by/4.0/

Nadere informatie

Microsoft Word Spellingcontrole

Microsoft Word Spellingcontrole Microsoft Word 2010 Spellingcontrole Inhoudsopgave 5. Controle 5.1 Spellingcontrole 5.2 Woordenlijsten 5.3 Zoeken en vervangen 5.4 Afdrukvoorbeeld en afdrukken 5.1 Spellingcontrole Word geeft spelfouten

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

PROGRAMMA'S SCHRIJVEN

PROGRAMMA'S SCHRIJVEN Hoofdstuk 3 Hoofdstuk 3 Programma's schrijven 13 PROGRAMMA'S SCHRIJVEN In dit hoofdstuk behandelen we: Hoe de verwerking van instructies verloopt Strings (tekenreeksen) Stringconcatenatie (oftewel strings

Nadere informatie

Bestanden ordenen in Windows 10

Bestanden ordenen in Windows 10 Bestanden ordenen in Windows 10 Waar heb ik dat bestand ook al weer opgeslagen? Vraagt je jezelf dat ook regelmatig af, dan is het tijd om je bestanden te ordenen. Sla bestanden op in een map met een logische

Nadere informatie

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren Inhoudsopgave Voorwoord... 5 Voordat je begint... 6 Wat heb je nodig?... 7 De website bij het boek... 7 Voor ouders, verzorgers en leraren... 8 Vervolgboeken over programmeren... 8 1. Aan de slag met Python

Nadere informatie

9.18 Macro s: oefeningen

9.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 informatie

Figuren in Word. Vul de Wat weet ik al?-kaart in van les 7. Als je nog niet alles weet en kan, zoek het dan op in les 7.

Figuren in Word. Vul de Wat weet ik al?-kaart in van les 7. Als je nog niet alles weet en kan, zoek het dan op in les 7. Figuren in Word Wat heb je de vorige les geleerd? Hoe je een rand om een alinea kunt maken Tekst te arceren in verschillende kleuren Hoe je een rand om een pagina kunt zetten Op welke manier je tekst kunt

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

Seven segments of Pi

Seven segments of Pi Seven segments of Pi Seven segments of pi Aan de slag met seven segments of Pi! Seven segments is een klein add-on boardje voor de raspberry pi. Deze add-on bestaat uit een display en een knopje. Meer

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

Cursus Onderwijs en ICT. Remediëren met ICT

Cursus Onderwijs en ICT. Remediëren met ICT Cursus Onderwijs en ICT Jaargang 2, deel 19 (versie 1.0 NL 25-02-2011) Remediëren met ICT door Serge de Beer Inleiding Niet voor elke leerling is het makkelijk leren even vanzelfsprekend. Een klein beetje

Nadere informatie

EEN KRUISWOORDRAADSEL MAKEN MET HOT POTATOES IN 10 STAPPEN

EEN KRUISWOORDRAADSEL MAKEN MET HOT POTATOES IN 10 STAPPEN CURSUS HOT POTATOES_KRUISWOORDRAADSEL 1 EEN KRUISWOORDRAADSEL MAKEN MET HOT POTATOES IN 10 STAPPEN STAP 1 open Hot Potatoes Je krijgt dan het volgende scherm: Kies hier voor JCROSS CURSUS HOT POTATOES_KRUISWOORDRAADSEL

Nadere informatie

Handleiding Op Maat Wizard.

Handleiding Op Maat Wizard. Handleiding Op Maat Wizard. Met de Op Maat Wizard kun je zelf vullingen maken voor de verschillende werkvormen in het Op Maat programma. Wanneer je de software (Speler en Wizard) niet in je bezit hebt,

Nadere informatie

1. Open het programma KompoZer Het grote witte vlak is een nog lege webpagina. Deze gaan we nu van inhoud voorzien.

1. Open het programma KompoZer Het grote witte vlak is een nog lege webpagina. Deze gaan we nu van inhoud voorzien. Minicursus KompoZer In deze cursus ga je leren werken met het computerprogramma KompoZer. Stapsgewijs maak je een voorbeeldsite. Daarna kun je alles wat je geleerd hebt gebruiken om je eigen website te

Nadere informatie

Veel succes! 1. Gegeven is de volgende klasse:

Veel succes! 1. Gegeven is de volgende klasse: Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Derde deeltentamen

Nadere informatie

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers

Verslag. Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers Verslag SE Projectteam: 107 Datum: 16 oktober 2008 Project leden: Lennard Fonteijn Harish Marhe Nicoletta Saba Turgay Saruhan Robin Tummers In dit verslag zullen wij een beschrijving geven, over welke

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

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

HvA Instituut voor Interactieve Media ActionScript 3.0

HvA Instituut voor Interactieve Media ActionScript 3.0 PPRO 1: OEFENINGEN LES 1 Hierbij de werkgroepoefeningen behorend bij het practicum week 1. Lees de stukken uitleg aandachtig door, zonder deze informatie zullen de principes in de oefeningen moeilijk te

Nadere informatie

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

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

Nadere informatie

GEVORDERDE PROGRAMMEER LES

GEVORDERDE PROGRAMMEER LES GEVORDERDE PROGRAMMEER LES Debug technieken Door: Droids Robotics DOELSTELLINGEN 1) Leren hoe belangrijk debuggen is. 2) Enkele technieken leren om je code te debuggen. 2 WAAROM DEBUGGEN? Debuggen is een

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

Programmeren met Scratch

Programmeren met Scratch Programmeren met Scratch Inleiding Heb je zin om zelf een spelletje te maken, of een tof filmpje in elkaar te steken, maar weet je niet hoe je hieraan moet beginnen? Scratch is een zeer goed programma,

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

WebQuest / WebKwestie. met Word 2003. www.webkwestie.nl

WebQuest / WebKwestie. met Word 2003. www.webkwestie.nl WebQuest / WebKwestie met Word 2003 www.webkwestie.nl Een WebQuest / WebKwestie maken in Word 2003 Belangrijk is dat alle pagina s en afbeeldingen die u gebruikt in één map worden opgeslagen. Download

Nadere informatie

OEFENINGEN PYTHON REEKS 6

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

9.19 Macro s: oefeningen

9.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 informatie