De herhaling

DE HERHALING OF ITERATIE

1. INLEIDING

Soms dien je enkele stappen meerdere malen uit te voeren om tot een oplossing te komen. Je kan dit op een efficiënte wijze doen door met een herhaling te werken. Concreet zijn er drie soorten herhalingen beschikbaar.

    • Begrensde herhaling: Als je precies weet hoe vaak een aantal stappen/blokken moeten worden herhaald (vb. 10 maal), dan gebruik je een begrensde herhaling.
  1.  
    • Onbegrensde herhaling: Als een opdracht oneindig aantal keer mag worden uitgevoerd, maak je gebruik van een onbegrensde herhaling.
  2.  
    • Herhaling met voorwaarde: Als je vooraf niet weet hoe vaak een opdracht herhaald moet worden, gebruik je een voorwaardelijke herhaling. De voorwaarde bepaalt hoe vaak de opdracht herhaald moet worden.

2. VOORBEELDEN

2.1 BEGRENSDE HERHALING

Teken een driehoek

Het programma start wanneer er op de groene vlag wordt geklikt. De kat tekent een rode driehoek op het speelveld.

    1. Start: Je start van een leeg project. Er is geen achtergrond nodig en je gebruikt als sprite enkel de kat van Scratch.
    1. Gebeurtenis: Het programma start wanneer er op groene vlag wordt geklikt.
    1. Voorbereiding:
      • De kat verplaatst zich naar het midden van het speelveld via de blok
      • Gebruik van de pen
        • Maak de penblokken zichtbaar in je blokkenpalet door te klikken op (linksonderaan) en dan door te klikken op pen.

        • Voorgaande tekeningen met de pen dienen te worden verwijderd met behulp van de blok .
      •  
        • Je past de penkleur aan naar rood met behulp van de blok .
      •  
        • Je geeft de pen een dikte van 1 met behulp van de blok .
      •  
        • Je plaats de pen op het speelveld met behulp van de blok .

4. Driehoek tekenen:

    • De kat wacht 2 seconden en dan begint ze te tekenen ().
    • Met behulp van een herhaling (3x) zal de kat een rode driehoek Driemaal neemt de kat 150 stappen, draait ze 120° in wijzerszin en wacht ze 2 seconden. Hiervoor gebruik je de blokken , , en .

    • Sla je oefening op als ‘Teken een driehoek_OPL_Voornaam_Familienaam’ in je gedeelde map op Dropbox.

2.2 ONBEGRENSDE HERHALING

Basketbal

Het programma start wanneer er op de groene vlag wordt geklikt. Je laat een basketbal willekeurig heen en weer kaatsen op het speelveld. Telkens wanneer de bal aan de rand van het speelveld komt, keert hij om.

1. Start: Je start van een leeg project. Je verwijdert de sprite met de kat. Je voegt de sprite ‘Basketball’ toe. Je voegt de achtergrond ‘Basketball 1’ toe. 

2. Gebeurtenis: Het programma start wanneer er op groene vlag wordt geklikt.

3. De basketbal laten bewegen.

    • Selecteer de sprite met de basketbal.
  •  
    • Voeg een onbegrensde herhaling toe.
  •  
    • Binnen deze herhaling laat je de steeds de basketbal 5 stappen, nemen, omkeren aan de rand en een naar een willekeurig getal tussen -30° en 30° draaien. Hiervoor heb je de blokken , , en nodig. De functieblok met het willekeurig getal plaats je in de draaiblok. 

    • Sla je oefening op als ‘Basketbal_OPL_Voornaam_Familienaam’ in je gedeelde map op Dropbox.

2.3 HERHALING MET VOORWAARDE

Zweefvliegtuig

Het programma start wanneer er op de groene vlag wordt geklikt. Je laat de vliegende versie van de kat van sprite constant loopings maken, tot er op de toets S wordt gedrukt.

    1. Start: Je start van een leeg project. Verwijder de sprite met de kat van Scratch en voeg de sprite ‘Cat Flying’ toe. Voeg de achtergrond ‘Boardwalk’ toe. Selecteer de sprite ‘Cat Flying’.
    1. Gebeurtenis: Het programma start wanneer er op groene vlag wordt geklikt.
    1. Voorbereiding:
      • Breng eerst de kat in een goed startpositie, zodat het project telkens opnieuw op dezelfde wijze kan worden opgestart. Gebruik hiervoor de blokken en .
    •  
      • Laat de kat 1 seconde wachten met behulp van de blok .

4. De kat loopings laten maken:

      • Voeg een herhaling met voorwaarde toe (). Gebruik als voorwaarde de blok .
    •  
      • Binnen de herhaling laat je de kat steeds 30° draaien en 30 stappen nemen. Dit doe je met behulp met de blokken en .

5. Programma stoppen:

      • Wanneer de herhaling wordt beëindigd door op de S-toets te drukken, stopt het programma. Dit bereik je via de blok
      • Sla je oefening op als ‘Zweefvliegtuig_OPL_Voornaam_Familienaam’ in je gedeelde map op Dropbox.

3. OPDRACHTEN

OPDRACHT 1: VLINDER

 
BELANGRIJK: Dit is een opdracht waarbij je een begrensde herhaling gebruikt.
 
    • Start een nieuw project in Scratch.
  •  
    • Verander de sprite in een vlinder (butterfly-2). Verwijder de sprite met de kat.

    • Kies een passende achtergrond
  •  
    • Verplaats de vlinder aan de linkerkant van het speelveld.
  •  
    • Voorbereiding
      • Laat je programma beginnen met de blok . Je dient zelf ‘pijltje rechts’ te selecteren. 
      • Sleep de blok tegen de vorige blok. Vanaf nu zal je vlinder er zo uitzien nadat je op het pijltje rechts klikt.
    •  
      • Laat de vlinder steeds aan de linkerkant Dit doe je door de vlinder op een bepaalde plaats aan de linkerzijde van het speelveld te plaatsen. Sleep de blok (waarden kunnen wat verschillen bij jou!) tegen de vorige blok. Vanaf nu zal de vlinder steeds naar de startpositie verplaatst worden als nadat je op de groene vlag hebt geklikt.
    •  
    • Laat de vlinder ‘vloeiend’ naar ‘boven en beneden’ vliegen

      • Draai de vlinder naar boven met behulp van de blok (graden aan te passen!).
    •  
      • Gebruik een begrensde herhaling om de vlinder driemaal naar boven te laten vliegen. Je gebruikt binnen de herhaling de blokken , en . Pas de blokken aan waar nodig.
    •  
      • Draai de vlinder naar beneden met behulp van de blok (graden aan te passen!).
    •  
      • Gebruik een begrensde herhaling om de vlinder driemaal naar boven te laten vliegen (zie vorige begrensde herahling).
      • Sla de oefening op als ‘Vlinder_OPL_Voornaam Familienaam’ in je gedeelde map op Dropbox.

OPDRACHT 2: AQUARIUM

Dit is een opdracht waarbij je zowel een begrensde herhaling als een onbegrensde herhaling gebruikt. Ook ga je in je blokkenpalet voor het eerst gebruik maken van .
  •  

Voorbereiding

      • Verwijder en sprite met de kat van Scratch. Voeg de sprite ‘Fish’ toe. Deze sprite heeft vier verschillende uiterlijken, elk een ander type vis. 
      • Verander het speelveld naar ‘Underwater 1’.

Aquarium vullen 

      • Start het programma door op de groene vlag te klikken. 
      • Verklein de vis tot 50% met behulp van de blok
      • Maak de vis onzichtbaar met behulp van de blok  
      • We gaan nu enkele klonen van deze vis maken. Deze klonen gaan we op een later moment zichtbaar maken en laten zwemmen in het aquarium. Gebruik een begrensde herhaling om 10 klonen te maken van de sprite ‘Fish 1’. Hiervoor gebruik je de blok ​. Om wat variatie te creëren tussen de vissen, gaan we werken met de verschillende uiterlijken van de sprite ‘Fish 1’. Gebruik binnen de herhaling nog de blokken ​ en (te plaatsen in het onderdeel ‘fish-a’).
    •  
      • Test al eens uit door op de groene vlag te klikken. Er worden 10 vissen boven elkaar gecreëerd.

Klonen laten zwemmen

      • In een volgende fase ga je de vissen verdelen over het aquarium en hen de opdracht ‘Zwem’ geven.
      • Gebruik de gebeurtenis om elke kloon enkele opdrachten te geven.
    •  
      • Verplaats elke kloon naar een willekeurige positie in het aquarium, zorg ervoor dat ze enkel naar rechts, links, boven en onder kunnen bewegen (niet draaien) en maak ze zichtbaar. Je gebruikt hiervoor de blokken , en .
    •  
      • Klik in het blokkenpalet op en maak een nieuwe blok ‘Zwem’ aan. Sleep deze blok onder de blok verschijn.
  •  

Zwem definiëren

      • Wanneer je de nieuwe blok ‘Zwem’ maakte, kreeg je een automatisch de blok ter beschikking. Via deze blok ga je instellen wat ‘Zwem’ nu eigenlijk betekent.
      • Het is de bedoeling dat alle klonen willekeurig blijven zwemmen zonder te stoppen. Hiervoor gebruik je een dubbele onbegrensde herhalingBinnen deze onbegrensde herhalingen wil je dat elke vis naar een willekeurige richting draait en een willekeurige afstand zwemt. Om dit zo realistisch mogelijk te maken, laat je de computer zelf willekeurige keuzes maken voor elke kloon.

    • Test het programma uit!
  •  
    • Sla het programma op als ‘Aquarium_OPL_VoornaamFamilienaam’ in de gedeelde map op Dropbox.

OPDRACHT 3: KAT EN HOND

Dit is een opdracht waarbij je een herhaling met voorwaarde gebruikt. Dit is tevens de eerste game die je zal maken met Scratch!

Voorbereiding

    • Start met een nieuw (leeg) project.
  •  
    • De kat van Scratch is reeds aanwezig. Voeg ook nog de sprite ‘Dog1’ toe
  •  
    • Selecteer de sprite met de kat.
      • Voeg de blok toe. 
      • Laat de kat linksboven op het speelveld starten met behulp van de blok (cijfers aan te passen).
    •  
      • Zorg ervoor dat de kat niet kan draaien, maar enkel naar links en rechts kan bewegen. Dit doe je via de blok. .
    • Selecteer de sprite met de hond.
      • Voeg de blok toe.  
      • Laat de hond rechtsonder op het speelveld starten met behulp van de blok (cijfers aan te passen).
    •  
      • Zorg ervoor dat de hond niet kan draaien, maar enkel naar links en rechts kan bewegen. Dit doe je via de blok. .

Kat laten bewegen naar muiscursor

    • Selecteer de sprite met de kat.
  •  
    • Je voegt blokken toe aan de reeds aanwezige code. 
    • Voeg een herhaling met voorwaarde toe.  Hierbinnen laat je de kat bewegen naar de muiscursor toe totdat de kat de hond raakt. Als voorwaarde gebruik je de blok (bij categorie Waarnemen).
  •  
    • Binnen de herhaling laat je de kat zich richten/draaien naar de muiscursor en deze volgen. Hiervoor gebruik je de blokken en .
  •  
    • Eens de hond de kat raakt, stopt de herhaling met voorwaarde. Dan zegt de kat ‘Oh nee’. Denk zelf even na welke blok je hiervoor kan gebruiken.

Hond laten bewegen achter kat

    • Selecteer de sprite met de hond.
  •  
    • Je voegt blokken toe aan de reeds aanwezige code. 
    • Voeg een herhaling met voorwaarde toe.  Hierbinnen laat je de hond bewegen naar de kat toe totdat de kat de hond raakt. Als voorwaarde gebruik je de blok  (bij categorie Waarnemen).
    • Binnen de herhaling laat je de hond zich richten/draaien naar de kat en deze volgen. Hiervoor gebruik je de blokken (aan te passen!) en . Pas het aantal stappen aan zodat je de hond nog kan ontwijken.
  •  
    • Eens de hond de kat raakt, stopt de herhaling met voorwaarde. Dan zegt de hond ‘Ik heb je!’. Denk zelf even na welke blok je hiervoor kan gebruiken.

 

    • Test het programma uit!
    • Sla het programma op als ‘Kat en hond_OPL_VoornaamFamilienaam‘ in de gedeelde map op Dropbox.

OPDRACHT 4: KLOK

Dit is een opdracht waarbij je (driemaal) een onbegrensde herhaling gebruikt.

    • Download het oefenbestand ‘Klok’. Pak het oefenbestand uit en open het vanuit Scratch (Menubalk => Bestand => Uploaden vanaf je computer).
  •  
    • Je hebt 4 sprites ter beschikking, namelijk SecondeWijzer, MinuutWijzer, UurWijzer en Klok. Enkel op de sprites met wijzers ga je programmeren.
  •  

SecondeWijzer

    • Selecteer de sprite ‘SecondeWijzer’.
  •  
    • Zorg ervoor dat de code start wanneer er op de groene vlag wordt geklikt.
  •  
    • Voeg een onbegrensde herhaling toe.
  •  
    • Richt de wijzer naar het juiste cijfer. Dit kan je doen door het huidig aantal seconden te vermenigvuldigen met 6, en je naar die graden te richten. Weet je waarom dit werkt? Een cirkel heeft 360 graden en er zijn 60 seconden in een minuut. Dus elke seconde draait de secondewijzer 6 graden en in het begin (op nul seconden) staat de secondewijzer naar boven (0 graden). Daarnaast bestaat er een blok dat je kan gebruiken om te weten wat momenteel het aantal seconden is. In de categorie Waarnemen vind je deze blok.  Uiteindelijk zal je hier gebruik maken van de blokken , en .

    • Test dit uit!

MinuutWijzer

    • Selecteer de sprite ‘MinuutWijzer’.
  •  
    • Zorg ervoor dat de code start wanneer er op de groene vlag wordt geklikt.
  •  
    • Voeg een onbegrensde herhaling toe.
  •  
    • Binnen de MinuutWijzer werk je op een vergelijkbare wijze als bij de SecondeWijzer. Voeg de nodige blokken toe en test uit!

UurWijzer

    • Selecteer de sprite ‘MinuutWijzer’.
  •  
    • Zorg ervoor dat de code start wanneer er op de groene vlag wordt geklikt.
  •  
    • Voeg een onbegrensde herhaling toe.
    • Binnen de UurWijzer werk je op een vergelijkbare wijze als bij de SecondeWijzer en MinuutWijzer. Er is wel één groot verschil. Waar je bij de seconden en minuten 6 posities hebt waarop de wijzers zich kunnen bevinden, heb je bij de uren er slechts 12. Je dient te werken volgens dit idee: huidige uur * 30 (want op een klok met wijzers zijn er 12 uren en 30 * 12 = 360). Voeg de nodige blokken toe en test uit!
  •  
    • Test het programma uit!
  •  
    • Sla het programma op als ‘Klok_OPL_VoornaamFamilienaam’ in de gedeelde map op Dropbox.

OPDRACHT 5: ACHTERSTEVOREN

Dit is een opdracht waarbij je een herhaling met voorwaarde gebruikt.

    • Download het oefenbestand ‘Achterstevoren’.  Pak het oefenbestand uit en open het vanuit het programma Scratch (Menubalk => Bestand => Uploaden vanaf de computer).
  •  

Voorbereiding

    • Je hebt één sprite ter beschikking: Jaime
  •  
    • Je hebt één achtergrond ter beschikking: Hall

    • Selecteer de sprite Jaime
  •  
    • Variabelen (= geheugenplaatsen): Maak twee variabelen aan een geef deze de namen ‘Woord achterstevoren’ en ‘letter’. In de variabele ‘Woord achterstevoren’ ga je een woord dat jij hebt getypt letter na letter omdraaien. Via de variabele ‘letter’ ga je bijhouden welke letter je dient toe te voegen bij het omgekeerde woord.

    • Gebeurtenis: Het programma start wanneer er op de groene vlag wordt Je maakt de variabele ‘Woord achterstevoren’ leeg door de 0 te verwijderen. Je maakt de variabele ‘letter’ gelijk aan 1.

    • Denk na hoe je het volgende kan programmeren. Jaime stelt je de volgende vraag: ‘Ik, Jaime, ben een meester in het achterstevoren zeggen van woorden. Typ een woord in en ik geef je onmiddellijk het juiste antwoord!’
  •  
    • Nu ga je letter per letter in omgekeerde volgorde plaatsen, tot wanneer het volledige woord omgekeerd opgeslagen is in de variabele ‘Woord achterstevoren’. Dit doe je via een herhaling die je voor de lengte van het ingetypte woord (= antwoord op vraag) laat lopen (vb. ingetypte woord is test => herhaling wordt 4x doorlopen).

    • Binnen de herhaling vul je de variabele ‘Woord achterstevoren’ stap per stap door de juiste letter toe te voegen aan wat er reeds in de variabele aanwezig is. Daarna verander je de variabele ‘letter’ met 1, zodat je bij de volgende herhaling de volgende letter gaat toevoegen.

    • Het ingetypte woord is nu volledig achterstevoren opgeslagen in het variabele ‘Woord achterstevoren’. Je werkt nu verder buiten/onder de herhaling. Klik onderaan het blokkenpalet door op . Voeg de functie Tekst naar spraak toe (). Laat Jaime het woord achterstevoren uitspreken. Dit doe je met behulp van de variabele waarin het woord is opgeslagen.

    • Tot slot zegt Jaime het woord (in een tekstballon) gedurende 5 seconden.
  •  
    • Sla het programma op als ‘Achterstevoren_OPL_VoornaamFamilienaam’ in de gedeelde map op Dropbox.