← Back to CoursesStemExpert
StemExpert
Fundamental · Oplossingen · 23. Programmeren met blokken
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
F23. Programmeren met blokken — oplossingen
FFundamental · deel F6 · Programmeren en automatiseren

Oplossingen · hoofdstuk 23Programmeren met blokken

Sequentie, herhaling, keuze en variabelen: programmeren door blokken te stapelen

Uitgewerkte oplossingen bij de 15 opdrachten van het werkboek. Voor de leerkracht, en voor wie zichzelf wil verbeteren nadat hij het eerst zelf probeerde.

5× oefenen6× toepassen4× uitdagen± 291 min
Blokken stapelen tot een programma: een fout typen kan niet, een fout denken wel.
Blokken stapelen tot een programma: een fout typen kan niet, een fout denken wel.
Voor de leerkrachtDeze pagina bevat de antwoorden. Druk het werkboek af zonder deze pagina.
Oefenen

Oefenen

één stap, direct toepassen
23.1

Welke categorie?

Oefenen1Begrijpen8 min
In welke categorie van Scratch vind je elk blok, en welke kleur heeft ze?
  1. a
    Vul de tabel in.
    Beweging (blauw); Uiterlijken (paars); Besturen (oranje); Variabelen (donkeroranje); Gebeurtenissen (geel); Functies (groen); Waarnemen (lichtblauw).
23.2

Vormen benoemen

Oefenen1Begrijpen8 min
Elk blok heeft een vorm die zegt waar het past.
1wanneer opwordt geklikt2neem10stappen3herhaal104: het ronde blokzegx-positie5: het zeshoekige blokwacht totmuis ingedrukt?
Vijf blokken met een verschillende vorm.
  1. a
    Geef de naam van de vorm van blok 1, 2 en 3.
    1: hoedblok (start een script). 2: stapelblok (commando). 3: C-blok (met een mond).
  2. b
    Het ronde blok (x-positie) en het zeshoekige blok (muis ingedrukt?) zitten in een ander blok. Wat is het verschil tussen beide?
    Het ronde blok geeft een waarde (een getal of tekst), het zeshoekige blok een voorwaarde (waar of niet waar).
  3. c
    Kan je het zeshoekige blok in het witte vak van 'neem (10) stappen' slepen? Waarom (niet)?
    Nee: in een rond of wit vak past alleen een rond blok. Een voorwaarde is geen aantal stappen.
23.3

Wat zegt de sprite?

Oefenen2Rekenen8 min
Speel het script na.
wanneer opwordt gekliktmaaka5maakba*2veranderamet1zega+b
Een script met twee variabelen.
  1. a
    Welke waarde hebben a en b na elk blok?
    a = 5 (b nog leeg); a = 5, b = 10; a = 6, b = 10.
  2. b
    Wat zegt de sprite?
    6 + 10 = 16.
  3. c
    Verandert b vanzelf als a verandert? Leg uit.
    Nee. Bij 'maak b (a * 2)' wordt de waarde op dat moment berekend (10) en in b gezet. Als a daarna verandert, blijft b 10.
23.4

Hoeveel stappen?

Oefenen2Rekenen8 min
De sprite start op x = 0 en kijkt naar rechts.
wanneer opwordt gekliktherhaal3neem10stappenherhaal4neem5stappen
Een lus met een lus erin.
  1. a
    Hoeveel keer wordt 'neem (5) stappen' uitgevoerd?
    3 × 4 = 12 keer.
  2. b
    Hoeveel stappen zet de sprite in totaal? Waar staat ze op het einde?
    Per ronde van de buitenste lus: stappen; drie rondes: 90 stappen. Ze staat op x = 90.
23.5

Van zin naar script

Oefenen2Programmeren10 min
Schrijf het script: 'Als je op de groene vlag klikt, zegt de sprite vijf keer telkens 1 seconde Hallo! en daarna 2 seconden Klaar!'
  1. a
    Teken het script (schrijf de tekst van elk blok; zet de blokken in een mond duidelijk in).
    Zie de figuur: groene vlag, herhaal (5) met 'zeg (Hallo!) (1) sec.' erin, daarna 'zeg (Klaar!) (2) sec.'.wanneer opwordt gekliktherhaal5zegHallo!1sec.zegKlaar!2sec.
  2. b
    Hoe lang duurt het van de klik tot Klaar! verdwijnt?
    5 × 1 s + 2 s = 7 s.
Toepassen

Toepassen

meerdere stappen, in een context
23.6

Aftellen in stappen van twee

Toepassen3Analyseren15 min
Een leerling wil aftellen: 5, 3, 1, klaar. Het script stopt niet.
wanneer opwordt gekliktmaaktijd5herhaal tottijd=0verandertijdmet-2zegtijd1sec.zegKlaar!
Een aftelscript dat per twee telt.
  1. a
    Speel de eerste vier rondes na.
    Ronde 1: 5 → nee → 3 → zegt 3. Ronde 2: 3 → nee → 1 → zegt 1. Ronde 3: 1 → nee → −1 → zegt −1. Ronde 4: −1 → nee → −3 → zegt −3.
  2. b
    Waarom stopt het script nooit? En waarom zegt het nooit 5?
    tijd springt van 1 naar −1 en is dus nooit precies 0: 'tijd = 0' wordt nooit waar. En de sprite zegt de nieuwe waarde, want 'verander' staat vóór 'zeg'.
  3. c
    Geef twee verschillende manieren om het te verbeteren.
    (1) Test op 'tijd < 0' in plaats van 'tijd = 0' (en zet 'zeg' vóór 'verander', dan hoor je 5, 3, 1). (2) Laat tijd bij 6 beginnen: 6, 4, 2, 0 komt wel op 0. De eerste oplossing is robuuster: ze werkt voor elke startwaarde.
23.7

Drie scripts, drie bugs

Toepassen3Analyseren15 min
Geen van de drie scripts doet wat zijn maker wil.
A: 'hallo zeggen bij de start'zegHallo!2sec.neem50stappenB: 'punten optellen'wanneer opwordt gekliktherhaal5maakpunten0veranderpuntenmet10zegpuntenC: 'animatie'wanneer opwordt gekliktherhaal20volgend uiterlijk
Wat de maker wilde, staat erboven.
  1. a
    Wat gaat er mis in A, en hoe verbeter je het?
    A heeft geen hoedblok: het start nooit vanzelf. Zet 'wanneer op de groene vlag wordt geklikt' erboven.
  2. b
    Wat zegt de sprite in B? Wat had de maker verwacht? Verbeter.
    B zegt 10: de beginwaarde wordt in elke ronde opnieuw 0, en dan komt er 10 bij. Verwacht was 50. Zet 'maak [punten] (0)' vóór de lus.
  3. c
    In C zie je de sprite nauwelijks veranderen. Waarom? Verbeter.
    C wisselt 20 keer van uiterlijk zonder te wachten: dat gaat zo snel dat je bijna niets ziet. Zet 'wacht (0.2) sec.' in de lus.
23.8

Een stroomdiagram omzetten: het wachtwoord

Toepassen3Programmeren20 min
Zet het stroomdiagram om in een Scratch-script.
Startpogingen = 0vraag het wachtwoordpogingen = pogingen + 1antwoord =kas123?jatoon 'Welkom!'Stopneepogingen =3?jatoon 'Geblokkeerd'Stopneetoon 'Fout'
Een wachtwoordcontrole met hoogstens drie pogingen.
  1. a
    Welke variabele heb je nodig? Welke Scratch-blokken passen bij de twee ruiten?
    Een teller pogingen. De ruit 'antwoord = kas123?' wordt 'als <antwoord = kas123> dan ... anders ...'. De ruit 'pogingen = 3?' wordt de lus 'herhaal (3)' (of 'herhaal tot pogingen = 3').
  2. b
    Teken het script.
    Zie de figuur.wanneer opwordt gekliktmaakpogingen0herhaal3vraagWachtwoord?en wachtveranderpogingenmet1alsantwoord=kas123dananderszegWelkom!stopallezegFout1sec.zegGeblokkeerd
  3. c
    Test je script in je hoofd: de gebruiker typt 'kas12', 'Kas123' en 'kas123'. Wat gebeurt er? (Scratch maakt geen verschil tussen hoofdletters en kleine letters bij '='.)
    'kas12': Fout. 'Kas123': Scratch vergelijkt tekst zonder op hoofdletters te letten, dus dit is juist: Welkom! en alles stopt. De derde poging komt er niet. (Een echt wachtwoord moet wel hoofdlettergevoelig zijn.)
23.9

Signalen volgen

Toepassen3Begrijpen12 min
Je klikt op de groene vlag.
sprite Annawanneer opwordt gekliktzegHallo!2sec.zend signaaljouw beurtsprite Bowanneer ik signaaljouw beurtontvangzegHoi!2sec.zend signaalklaarsprite Annawanneer ik signaalklaarontvangzegTot straks!2sec.
Anna en Bo sturen elkaar signalen.
  1. a
    Zet de tekstballonnen in de juiste volgorde, met het tijdstip waarop ze verschijnen.
    0 s: Anna 'Hallo!' (2 s). 2 s: Bo 'Hoi!' (2 s). 4 s: Anna 'Tot straks!' (2 s).
  2. b
    Wat verandert er als Anna 'zeg (Hallo!)' gebruikt zonder '2 sec.'?
    Dan zendt Anna het signaal meteen: Bo zegt 'Hoi!' al op 0 s en Anna 'Tot straks!' op 2 s. Ook 'Hallo!' blijft staan tot de volgende zeg-opdracht van Anna het vervangt.
23.10

Een lus met een keuze

Toepassen3Rekenen12 min
Speel het script na.
wanneer opwordt gekliktmaakn0maaksom0herhaal6verandernmet1alsnmodulo2=0danverandersommetnzegsom
'n modulo 2' is de rest bij deling door 2.
  1. a
    Vul de trace-tabel in.
    n = 1, 2, 3, 4, 5, 6; rest 1, 0, 1, 0, 1, 0; som 0, 2, 2, 6, 6, 12.
  2. b
    Wat zegt de sprite? Wat telt het script eigenlijk op?
    12: de som van de even getallen van 1 tot 6 (2 + 4 + 6).
  3. c
    Wat moet je veranderen om de oneven getallen van 1 tot 9 op te tellen?
    herhaal (9) en de voorwaarde '(n modulo 2) = 1': 1 + 3 + 5 + 7 + 9 = 25.
23.11

Maak: een reactietijdmeter met gemiddelde

Toepassen3Maken30 min
Het script uit de proef meet één reactietijd. Breid het uit: het meet vijf keer na elkaar, toont telkens de tijd en op het einde het gemiddelde.
  1. a
    Welke variabele heb je extra nodig? Waar geef je haar een beginwaarde?
    Een variabele totaal (de som van de tijden), beginwaarde 0 vóór de lus.
  2. b
    Bouw het script in Scratch en teken het hier.
    Zie de figuur.wanneer opwordt gekliktmaaktotaal0herhaal5verander uiterlijk naarroodwachtwillekeurig getal tussen2en5sec.verander uiterlijk naargroenzet klok op 0wacht tottoetsspatiebalkingedrukt?verandertotaalmetklokzegklok1sec.zegtotaal/5
  3. c
    Meet bij drie klasgenoten. Noteer de gemiddelden.
    Typisch tussen 0,2 en 0,4 s. Wie oefent, wordt vaak een beetje sneller.
Zo wordt dit beoordeeld
VariabeleEen variabele totaal met beginwaarde 0 vóór de lus.
LusHerhaal (5) rond het meten; de klok wordt bij elke meting op 0 gezet.
Gemiddeldetotaal / 5 na de lus, getoond met zeg.
WerktGetest; de willekeurige wachttijd blijft in de lus.
Uitdagen

Uitdagen

transfer, open problemen, leerlijnen combineren
23.12

Habitat: een realistischere simulatie

Uitdagen4Habitat45 min
De simulatie uit het handboek laat het vocht dag en nacht even snel dalen en merkt niet wanneer het reservoir leeg raakt. Maak twee verbeteringen: (1) 's nachts, van 0 tot 6 uur, daalt het vocht maar 2 procentpunt per uur (de planten verdampen minder); (2) zakt het water onder 5 L, dan zegt de sprite 'Reservoir bijvullen!' en stopt de simulatie. Laat de simulatie lopen tot dat gebeurt.
  1. a
    Welke variabele heb je extra nodig voor de nacht? Hoe weet je met 'modulo' welk uur van de dag het is?
    Een variabele uur die elke ronde met 1 verhoogt. 'uur modulo 24' geeft het uur van de dag: bij 30 is dat 6, bij 47 is dat 23. De nacht is 'uur modulo 24 < 6'.
  2. b
    Teken het verbeterde script.
    Zie de figuur.wanneer opwordt gekliktmaakvocht50maakwater30maakuur0herhaalveranderuurmet1alsuurmodulo24<6danandersverandervochtmet-2verandervochtmet-5alsvocht<30danverandervochtmet16veranderwatermet-0.24alswater<5danzegReservoir bijvullen!stopallewacht0.1sec.
  3. c
    Reken eerst zonder de nacht: na hoeveel dagen zakt het reservoir onder 5 L, als de kas 1,8 L per dag gebruikt?
    Van 30 L tot 5 L is 25 L. : in de loop van de 14de dag.
  4. d
    Met de trage nacht gebruikt de kas minder. Schat hoeveel minder per dag, en wat dat betekent voor het aantal dagen.
    Zes nachturen met −2 in plaats van −5: 18 procentpunt minder daling per dag, dus per dag. Dat vraagt beurten of ongeveer 1,5 L per dag. Het reservoir houdt dan dagen.
  5. e
    Portfolio: noteer het model (daling per uur dag/nacht, +16 per beurt, 0,24 L per beurt) en je uitkomst.
    Bijvoorbeeld: 'Model: −5 per uur overdag, −2 's nachts (0-6 h), +16 en −0,24 L per beurt. Reservoir onder 5 L na ongeveer 16 dagen.'
Zo wordt dit beoordeeld
ModelNacht (uur modulo 24 < 6) met −2, dag met −5; beurt +16 en −0,24 L.
ScriptEindeloze lus of 'herhaal tot water < 5', met de controle op het reservoir en 'stop alle'.
Rekenwerk25 L : 1,8 L per dag ≈ 13,9 dagen; met de nacht minder verbruik en dus langer.
KritischBeseft dat de getallen uit het model komen, niet uit een meting.
23.13

Onderzoek: welke drempel is het best?

Uitdagen4Onderzoeken25 min
Met de simulatie uit het handboek kan je snel proberen wat er gebeurt met een andere drempel. Een leerling liet het script 48 uur lopen met de drempels 20, 30 en 40 %. Het resultaat:
drempelbeurten in 48 hwater gebruiktlaagste vochthoogste vocht (na de eerste dag)
20 %143,36 L20 %35 %
30 %143,36 L30 %45 %
40 %153,60 L40 %55 %
  1. a
    Welke variabele heeft de leerling veranderd, welke gemeten, welke gelijk gehouden?
    Veranderd: de drempel. Gemeten: aantal beurten, waterverbruik, laagste en hoogste vocht. Gelijk gehouden: de beginwaarde (50 %), de daling (5 per uur), de beurt (+16, 0,24 L) en de duur (48 h).
  2. b
    Hangt het waterverbruik af van de drempel? Verklaar met het model.
    Nauwelijks (14 of 15 beurten). In het model bepalen de planten het verbruik: elke dag verdwijnt 120 procentpunt vocht, en dat moet aangevuld worden, wat de drempel ook is. De drempel beslist alleen wanneer.
  3. c
    Wat verandert er dan wel? Welke drempel kies je voor planten die geen natte voeten willen maar ook niet mogen verdrogen?
    Het niveau: bij 20 % schommelt het vocht tussen 20 en 35 %, bij 40 % tussen 40 en 55 %. Voor de meetkas is 30 % (tussen 30 en 45 %) een goed midden.
  4. d
    Waarom mag je dit besluit niet zomaar op de echte kas toepassen?
    In het model hangt de daling niet af van het vocht zelf. In het echt verdampt natte grond sneller en kan water wegzakken of weglopen onder in de bakjes: een hoge drempel verspilt dan wel water. Het besluit moet getest worden met metingen (hoofdstuk 25).
23.14

Ontwerp: vang de druppels

Uitdagen4Ontwerpen60 min
Ontwerp een spel in Scratch. Een druppel valt van een willekeurige plaats bovenaan naar beneden. Met de pijltjestoetsen beweeg je een emmer onderaan. Vang je de druppel, dan krijg je een punt. Mis je hem, dan verlies je een leven. Na drie gemiste druppels is het spel voorbij.
  1. a
    Decompositie: welke sprites en welke scripts heb je nodig? Welke variabelen?
    Sprites: Druppel en Emmer. Druppel: één script met een eindeloze lus (bovenaan starten, vallen tot de bodem of de emmer). Emmer: twee korte scripts voor de pijltjes. Variabelen: score en levens.
  2. b
    Bouw het spel. Teken het script van de druppel.
    Zie de figuren: de druppel valt in stappen van 5 tot hij onder −160 komt of de emmer raakt. De variabele gevangen onthoudt wat er gebeurde; na de lus krijg je een punt of verlies je een leven.sprite Druppelwanneer opwordt gekliktmaakscore0maaklevens3herhaalga naar x:willekeurig getal tussen-200en200y:180maakgevangen0herhaal toty-positie<-160ofgevangen=1verander y met-5alsraak ikEmmer?danmaakgevangen1alsgevangen=1danandersveranderscoremet1veranderlevensmet-1alslevens=0danzegGame overstopallesprite Emmerwanneerpijltje linksis ingedruktverander x met-20sprite Emmerwanneerpijltje rechtsis ingedruktverander x met20
  3. c
    Test en debug: noteer twee fouten die je vond en hoe je ze verbeterde.
    Typische fouten: score en levens niet op hun beginwaarde bij de start; de druppel wordt dubbel geteld omdat hij na het vangen nog even de emmer raakt (daarom stopt de lus meteen als gevangen = 1); de druppel raakt de onderrand nooit, omdat Scratch een sprite altijd een beetje zichtbaar houdt (daarom testen op −160 en niet op −180); de emmer loopt van het speelveld.
  4. d
    Uitbreiding: laat de druppels sneller vallen naarmate de score stijgt. Welk blok verander je?
    In 'verander y met (-5)' zet je in plaats van −5 bijvoorbeeld '0 − (5 + score / 5)': hoe hoger de score, hoe sneller de val.
Zo wordt dit beoordeeld
DecompositieTwee sprites (druppel, emmer), aparte scripts voor vallen en besturen, variabelen score en levens.
ProgrammaLus, keuze (raak ik emmer?), tellers met beginwaarden, stop bij 0 levens.
DebuggenTwee echte fouten beschreven met hun verbetering.
UitbreidingValsnelheid gekoppeld aan de score.
23.15

Lussen in lussen

Uitdagen4Rekenen15 min
Het aantal herhalingen van de binnenste lus is geen vast getal: het is de variabele n.
wanneer opwordt gekliktmaakn0maaksom0herhaal4verandernmet1herhaalnverandersommet1zegsom
De binnenste lus hangt af van n.
  1. a
    Hoeveel keer loopt de binnenste lus bij elke ronde van de buitenste? Wat zegt de sprite?
    n = 1, 2, 3, 4; binnen 1, 2, 3, 4 keer; som 1, 3, 6, 10. De sprite zegt 10.
  2. b
    Wat zegt de sprite als je 'herhaal (4)' vervangt door 'herhaal (10)'? Zoek een snelle manier.
    . Snel: zet de rij twee keer onder elkaar, omgekeerd: elk paar is 11, tien paren, de helft: (hetzelfde patroon als bij selectiesorteren in hoofdstuk 22).
  3. c
    Voor welke tekening op ruitjespapier kan dit patroon dienen? Schets ze.
    Een trap of driehoek van blokjes: 1 blokje in de eerste rij, 2 in de tweede, 3 in de derde, ... Samen 10 blokjes voor 4 rijen.