Leren programmeren al spelenderwijs!
Voornaam: ............................................................................... Naam: ...................................................................................... Klas: ......................................................................................... Jaar: .........................................................................................
INLEIDING Scratch opent voor jou een fantasierijke wereld die jij met je creatieve brains zelf in elkaar kunt steken. Deze methode zal jou een nieuwe kijk op de informaticawereld bieden. Spelenderwijs leren we jou analytisch denken waardoor je begeleid en toch zelfstandig via trial and error kennismaakt met de programmeerstructuren. Vooral jouw creativiteit staat voorop en resultaten zijn gemakkelijk te verkrijgen zonder je te moeten vastpinnen op programmeercodes. Daarnaast is dit programma speciaal ontwikkeld om jou eenvoudig te leren programmeren: met dit programma leer je essentiële denkmethodes volgen om problemen op te lossen. Door de vereenvoudigde programmeertaal van Scratch is het voor jou maar een kleine stap naar de grote programmeertalen als VB.net, javascript … Bovendien is Scratch ook voor iedereen gemakkelijk te gebruiken, want dit Open Source-programma is gratis van het internet te halen. De onderstaande tabel toont je de gebruikte iconen of symbolen met hun functie erbij. Probleemstelling: wat is er aan de hand? Wat moet bereikt worden.
Analyseren: analyseer het probleem. Hoe kunnen we het probleem aanpakken? Werk met invoer, verwerking en uitvoer. Stel het algoritme schematisch voor.
Programmeren: ontwerp je programma.
Controleren: werkt je programma? Moet je het programma bijschaven?
Reflecteren: was de oefening makkelijk of moeilijk voor jou? Waarom?
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 1
INHOUDSOPGAVE Inleiding 1 Inhoudsopgave ............................................................................................................................................................2 1
1, 2, 3 Start! .................................................................................................................................................3
1.1 1.2 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.4 1.5
Installeren en openen Scratch ........................................................................................................................... 3 Werken met sprites ........................................................................................................................................... 6 De sprite............................................................................................................................................................. 6 Een nieuwe sprite maken .................................................................................................................................. 6 Wijzigen uiterlijk sprite ...................................................................................................................................... 7 Positioneren van de sprite ................................................................................................................................. 8 De sprite laten bewegen .................................................................................................................................... 9 De achtergrond wijzigen .................................................................................................................................. 10 De menustructuur ............................................................................................................................................ 10
2
Programmeren maar ................................................................................................................................. 13
2.1 2.2 2.3 2.3.1 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5
Algoritmes ........................................................................................................................................................ 13 De sequentie .................................................................................................................................................... 15 Variabelen ........................................................................................................................................................ 16 Inleiding ........................................................................................................................................................... 16 Theorie ............................................................................................................................................................. 18 De sequentie .................................................................................................................................................... 18 Algoritme ......................................................................................................................................................... 18 Signalen............................................................................................................................................................ 18 Variabelen ........................................................................................................................................................ 19 Constanten ....................................................................................................................................................... 21 Rekenkundige operatoren en eenvoudige functies ......................................................................................... 22 Let the game begin .......................................................................................................................................... 23
3
Wat als… ................................................................................................................................................... 26
3.1 3.2 3.3 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.5
Eenzijdige selectie ............................................................................................................................................ 26 Tweezijdige selectie ......................................................................................................................................... 27 Geneste selectie............................................................................................................................................... 29 Theorie ............................................................................................................................................................. 31 De eenzijdige selectie ...................................................................................................................................... 31 De tweezijdige selectie .................................................................................................................................... 32 De geneste selectie .......................................................................................................................................... 32 Subprocedures ................................................................................................................................................. 33 Oefenen, oefenen en nog eens oefenen ......................................................................................................... 34
4
Herhalen tot … .......................................................................................................................................... 38
4.1 4.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.5
Oneindige herhaling … ..................................................................................................................................... 38 De begrensde herhaling ................................................................................................................................... 39 De voorwaardelijke herhaling .......................................................................................................................... 40 Theorie ............................................................................................................................................................. 43 Oneindige herhaling......................................................................................................................................... 43 Begrensde herhaling ........................................................................................................................................ 43 Voorwaardelijke herhaling ............................................................................................................................... 44 Start to practice ............................................................................................................................................... 46
5
Samenvatting ............................................................................................................................................ 49
6
Verschillende programmeertalen .............................................................................................................. 51
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 2
1
1, 2, 3 START!
1.1
INSTALLEREN EN OPENEN SCRATCH
De eerste stap is natuurlijk het programma downloaden en installeren. Via de link http://info.scratch.mit.edu/Scratch_1.4_Download kun je Scratch downloaden en installeren.
Categorieë n
Open het programma Scratch aan de hand van het pictogram op het bureaublad of via Start – Alle programma’s – Scratch.
Programmeerblokken
Stage
Scriptzone
Lijst met sprites / objecten
Bij het openen van het programma wordt altijd standaard gewerkt met dezelfde sprite, namelijk de kat van Scratch.
In de bovenste menubalk heb je verschillende mogelijkheden.
e
Via het wereldbolletje kun je de taal wijzigen. Sylvie Vergote
Aan de hand van het disketje kun je het gemaakte programma opslaan.
Voorlopige versie Bachelorproef 2011-2012
Dankzij het 3 pictogram kun je het project (bestand) publiceren op de website van Scratch.
p. 3
Via Bestand start je een nieuw project, open je een gemaakt project, sla je een project op…
Aan de hand van Bewerken kun je stappen terughalen (= ongedaan maken), …
Met de optie Publiceren kun je het project publiceren op de officiële website van Scratch.
Via Hulp open je via je het internet korte handleidingen en uitleg over Scrtach. Vaak is deze uitleg in het Engels.
Zoals je ziet bestaat het programma uit verschillende categorieën zoals besturen, waarnemen …
Binnen de categorieën heb je verschillende programmeerblokken.
Daarnaast heb je de scriptzone waar de programmeerblokken naar gesleept worden. De programmeerblokken die samen horen, worden aan elkaar geklikt.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 4
In de stage zie je hoe de sprite de code uitvoert. Onder de stage heb je de lijst met sprites en de achtergrond (de achtergrond kreeg de naam Scherm).
Het menu boven de stage zorgt voor enkele handige mogelijkheden.
De stempel zorgt voor een kopie. Selecteer de stempel en klik op hetgene dat je wilt kopiëren.
Dankzij het schaartje kun je wat je ook selecteert verwijderen (sprites en programmeerblokjes).
e
e
Met de 3 mogelijkheid kun je de sprite vergroten.
Dankzij de 4 mogelijkheid kun je de sprite verkleinen door de optie te selecteren en op de sprite te klikken.
Hier werd bijvoorbeeld de code gekopieerd, je kunt ook bijvoorbeeld je sprite kopiëren. Dankzij deze knoppen kun je de grootte van de stage aanpassen. De laatste mogelijkheid zorgt ervoor dat je enkel nog de stage ziet, alle andere menu’s zijn op dat moment niet zichtbaar. Afhankelijk van je zelf gekozen programmeerblokken kun je de uitvoer laten starten aan de hand van het vlaggetje. Indien je op de rode knop klikt wordt alle uitvoer onmiddellijk beeïndigd.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 5
1.2
WERKEN MET SPRITES
Een sprite is een object dat je iets kunt laten zeggen, bewegen,… en dit aan de hand van programmeerblokken. De sprite moet er niet uitzien als een diertje (zoals de standaardsprite die een kat is): het kan om het even welk object zijn. De sprite wordt telkens uitgelijnd op een x en y coördinaat. Telkens je de sprite verplaatst, wijzig je ook de coördinaten. Met behulp van deze coördinaten kun je de sprite naar een andere positie verplaatsen. Bovenaan de scriptzone zie je de huidige coördinaten van de sprite
Hier werd de achtergrond gewijzigd om de coördinaten aan te tonen. Onder de stage zie je coördinaten van de muisaanwijzer (in dit voorbeeld:
).
De coördinaten van de sprite vind je terug boven de scriptzone.
In dit voorbeeld:
Je kunt ook de naam van de sprite wijzigen door te dubbel klikken op de naam en een andere naam in te vullen. Voor elke sprite kun je een eigen script opbouwen met programmeerblokken. Ook aan de achtergrond kun je programmeerblokken toevoegen.
1.3
DE SPRITE
1.3.1
EEN NIEUWE SPRITE MAKEN
Dit doe je aan de hand van de knoppen onder de stage.
Een nieuwe sprite kun je zelf tekenen, uit een bestand halen of je kunt ook een willekeurige sprite door de computer laten plaatsen door te klikken op het sterretje met vraagteken. Voor elke sprite of achtergrond kun je een eigen script opbouwen met de programmeerblokken.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 6
1.3.2
WIJZIGEN UITERLIJK SPRITE
1
Open een nieuw bestand: Ga naar het menu, kies voor Bestand en selecteer dan in het menu de optie nieuw.
2
Selecteer de sprite: klik op de afbeelding van de gewenste sprite onder de stage.
3
Klik in het menu (in de scriptzone) op het tabblad Uiterlijken. Hier zie je dus dat elke sprite één of meerdere uiterlijken heeft die je zelf kunt importeren, bewerken, tekenen en kopiëren. Via het tabblad Geluiden kun je ook zelf geluiden opnemen om te laten afspelen via code.
4
Klik op de knop Bewerken van uiterlijk 1. Nu kun je ofwel het uiterlijk bewerken (vergelijk met het programma Paint), wissen of een nieuw uiterlijk importeren. Je kunt ook zelf een nieuwe sprite tekenen.
Aan de hand van deze knoppen kun je het uiterlijk van de sprite vergroten, verkleinen, 15° naar rechts draaien, 15° naar links laten draaien, naar links of rechts keren, naar boven of onder laten keren. 5
Wis het bestaande uiterlijk. Klik hiervoor op de knop Wissen.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 7
6
Klik op de knop Importeren.
7
Open de map Animals.
8
Importeer nu een nieuw uiterlijk uit de standaard map Animals door te dubbel klikken op de gewenste sprite. Kies zelf een leuke sprite.
9
Bewerk nu het uiterlijk van de sprite zodanig dat deze een hoed krijgt.
Opmerking: met de programmeerblokken kun je ook het uiterlijk wijzigen of geluiden integreren in de code! Zie pagina 10. Extra
Ook een foto van jezelf kan geïmporteerd worden als sprite! Hiervoor heb je wel een webcam nodig. Een nieuw uiterlijk zal gemaakt worden, wis daarom de vorige uiterlijken totdat dat je jouw foto als sprite kunt gebruiken. Verwijder de uiterlijken door te klikken op X.
10
Sla op onder de naam Sprite1. Klik op de knop Bestand en kies voor Opslaan als.
1.3.3 1
POSITIONEREN VAN DE SPRITE Open een nieuw bestand. Wat zijn de coördinaten van de sprite? X: 0 Y: 0
2
Selecteer de sprite en versleep hem naar links. Wat zijn nu de coördinaten van de sprite? X: -136 Y: -5
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 8
3
1.3.4
Sla op onder de naam Sprite2.
DE SPRITE LATEN BEWEGEN
1
Open een nieuw bestand.
2
Selecteer sprite 1.
3
Klik op de categorie Bewegen.
4
Klik op de programmeerblok neem 10 stappen.
5 6
Hou de linkermuisknop ingedrukt en sleep de blok naar de scriptzone. Klik dubbel op de programmeerblok in de scriptzone. Wat gebeurt er met de sprite? De sprite gaat 10 stappen vooruit. Ik wil de sprite maar 2 stappen laten zetten. Hoe wijzig je de programmeerblok? Klikken in de programmeerblok en 10 wijzigen naar 2.
7
Voer de wijziging van 10 naar 2 stappen uit. Voert de sprite de code correct uit? Ja.
8
Open opnieuw de categorie Bewegen.
9
Klik op de programmeerblok draai schuin 15°.
10
Sleep deze programmeerblok naar de scriptzone onder de blok neem 2 stappen. Sleep de blok zodanig onder de eerste blok totdat er een witte lijn tussen de 2 blokken ontstaat (zoals je ziet op de afbeelding). Laat de linker muisknop los. Wat is er gebeurd? De 2 blokken hangen vast aan elkaar.
11
Voer de code uit. Hoe doe je dit? Door te dubbel klikken op de code. Wat gebeurt er? De sprite zet 2 stappen terwijl hij 15° naar links draait.
12
Sla op onder de naam SpriteLatenBewegen. Hoe doe je dit? Klikken in het menu op de knop Bestand en dan kiezen voor Opslaan als.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 9
1.4
DE ACHTERGROND WIJZIGEN
1
Open een nieuw bestand.
2
Selecteer het scherm in plaats van de sprite onderaan de stage.
3
Kies voor het tabblad Achtergronden in het menu van de scriptzone. Zoals je ziet zijn de opties gelijkaardig aan het wijzigen van het uiterlijk van de sprite.
4
Klik op de knop Bewerken. Je kunt opnieuw de achtergrond bewerken of een nieuwe achtergrond tekenen, importeren of een foto met behulp van je webcam toevoegen.
5
Teken zelf een leuke achtergrond.
6
Sla op onder de naam Achtergrond1.
1.5
DE MENUSTRUCTUUR
In Scratch bouwen we ons programma op aan de hand van programmeerblokken. Er zijn acht verschillende categorieën om programmeerblokken in terug te vinden.
Bewegen De sprite kun je laten stappen nemen (het aantal kun je zelf invullen). Laten draaien, richten naar een bepaalde kant, richten naar de muisaanwijzer, naar bepaalde coördinaten laten verschuiven, …
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 10
Uiterlijk Een sprite kan zoals je al eerder zag meerdere uiterlijken bevatten. Het nut daarvan is dat je in je programma de sprite bijvoorbeeld kunt laten wijzigen van uiterlijk. Je kunt een sprite iets laten zeggen, wijzigen van kleur, grootte, verschijnen en verdwijnen, …
Geluid In Scratch kun je ook geluiden laten afspelen aan de hand van programmeerblokken. Deze kun je importeren net zoals je uiterlijken importeert. Scratch bevat ook standaard muziekinstrumenten, ritmes, … die je kunt laten afspelen aan de hand van programmeerblokken.
Pen Je kunt in de stage tekeningen maken dankzij de pen. Deze moet je natuurlijk eerst neerzetten wanneer je wilt starten met tekenen. Pen op stopt het tekenen. Je kunt de penkleur wijzigen, de grootte, de helderheid, … Stempel zorgt ervoor dat de sprite telkens zichzelf kopieert. Besturen In deze categorie vind je de structuren terug die je later zult nodig hebben zoals de voorwaardelijke herhaling. Je kunt je programma laten starten aan de hand van het vlaggetje, … Je kunt ook signalen sturen naar sprites, hiermee zorg je voor communicatie tussen de sprites.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 11
Waarnemen In de stage kun je de sprite laten vragen stellen, tijd instellen, controleren of de sprite iets raakt (zoals e een 2 sprite), enzovoort.
Functies Hier vind je de wiskundige, logische en voorwaardelijke operatoren terug. Ook kun je gebruik maken van tekst- en wiskundige functies.
Variabelen Om waarden te laten variëren, maak je gebruik van variabelen. Deze kun je in deze categorie maken. De waarde van variabelen kun je de sprite laten zeggen of laten weergeven in een lijst.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 12
2
PROGRAMMEREN MAAR
2.1
ALGORITMES
Leren programmeren start telkens met een grondige analyse van de opgave, wat moet er ingevoerd worden? Hoe zullen we dit verwerken? Wat moet de uiteindelijke uitvoer zijn? Elke oefening die we maken, elke handeling, elk recept heeft een bepaalde volgorde en bestaat uit een eindige reeks instructies. Dit noemen we algoritmen, ook in het dagelijkse leven heb je veel met algoritmen te maken. Voorbeeld : Een kadertje aan de muur hangen Stap 1:
Zoek de hamer en de spijker en bepaal de plaats waar het kadertje moet komen.
Stap 2:
Neem de hamer in de ene hand en de spijker in de andere.
Stap 3:
Plaats de spijker tegen de muur.
Stap 4:
Geef een forse slag met de hamer in de richting van de spijker.
Stap 5:
Bij ongeluk, werken stilleggen, zoek een verbanddoos, anders ga verder.
Stap 6:
Test of de spijker goed vast zit in de muur, zoniet herneem vanaf stap 4.
Stap 7:
Hang het kadertje aan de spijker.
Stap 8:
Neem de stofzuiger en maak alles netjes.
Stap 9:
Einde.
Het is duidelijk dat de opdracht slechts goed zal uitgevoerd worden als we bovenstaande volgorde in acht nemen. Zo'n opeenvolging van regels voor het systematisch oplossen van een probleem of het uitvoeren van een handeling, noemen we een algoritme. Elke oefening wordt aan je voorgesteld aan de hand van een vaste structuur:
Gegeven Hier lees je de opdracht, wat je moet ontwerpen. Vaak wordt dit geïllustreerd met een afbeelding.
Analyse In dit deel analyseren we de opdracht. Wat weten we, wat moet er worden ingevoerd, hoe worden de gegevens verwerkt en hoe moet de uitvoer gebeuren. Deze analyse gebeurt aan de hand van Nassi-Shneidermann diagrammen. Afhankelijk van het soort structuur stel je het diagram anders op (dit zal duidelijk worden via de verdere hoofdstukken). Enkele bemerkingen bij het maken van je diagram:
de instructies worden in hoofdletters geschreven; elke opdracht staat in een rechthoek; de probleemoplossing staat centraal.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 13
Hieronder zie je een voorbeeld van het Nassi-Shneidermanndiagram bij een opeenvolging: Je schrijft dus enkel de te gebruiken opdrachten. VRAAG: Geef de verkoopprijs per product op LEES: VERKOOPPRIJS VRAAG: Geef het aantal verkochte producten op LEES: AANTAL OMZET = VERKOOPPRIJS * AANTAL SCHRIJF: OMZET De opdrachten worden altijd in volgorde van boven naar onder uitgevoerd (=SEQUENTIE)! De opdracht LEES wordt gebruikt om de variabelen een waarde te geven. De opdracht SCHRIJF wordt gebruikt wanneer de uitvoer moet worden getoond.
Uitvoeren In dit onderdeel is het dus de bedoeling dat je het programma maakt in Scratch.
Controleren Na het uitvoeren van de code moet je nu controleren of het programma uitvoert wat opgegeven werd bij Gegeven.
Reflecteren Nu bekijken hoe het programmeren verliep voor jou. Waar zaten de moeilijkheden? Het is belangrijk dat je dit eerlijk invult zodanig dat de leerkracht hulp kan bieden waar nodig.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 14
2.2
DE SEQUENTIE
Gegeven Sam is aan het ijsberen. Hij neemt 100 stappen, draait naar links, wacht 1 tel, draait opnieuw naar rechts en stopt. Werk met de sprite boy4-walking-a uit de standaardmap People (enkel deze sprite gebruik je). Laat Sam starten met ijsberen na het klikken op het vlaggetje.
Analyse Wijzig het uiterlijke van de sprite. Hoe ga je dit doen? (Zie pagina 7) Eerst sprite 1 selecteren daarna kiezen voor uiterlijken, uiterlijk 1 selecteren en daarna klikken op bewerken. Dan het bestaande uiterlijk wissen en de gewenste sprite importeren. Vul in onderstaande tabel eerst de gebeurtenis (hoe moet de procedure starten?). Daaronder maak je de analyse van de invoer, verwerking en uiteindelijke uitvoer van je programma. Gebeurtenis: Na klikken op het vlaggetje Invoer
/
Verwerking
/
Uitvoer
Sam neemt 100 stappen, draait -90°C naar links, wacht 1 tel, draait 90°C naar rechts.
Per gebeurtenis wordt een procedure (apart programmatje) gestart. Vul in onderstaand Nassi-Shneidermann diagram de volgorde van de nodige programmeerblokken in. Procedure ijsberen Gebeurtenis: Na het klikken op het vlaggetje Neem 10 stappen Richt naar -90 graden Wacht 1 tel Richt naar 90 graden
Uitvoeren 1
Sleep de blokken naar de scriptzone.
2
Klik nu de blokken in de correcte volgorde aan elkaar. Hoe voer je nu het programma uit? Door 2 x te klikken op de blokken.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 15
3
Sla op onder de naam ijsberen. Het programma voert dus alle opdrachten / instructies in volgorde uit. Dit is een voorbeeld van een algoritme.
Controleren 1
Wordt de code correct uitgevoerd? Neen.
2
Wat valt er op? De sprite draait zich volledig om in plaats van naar links. Dit los je op aan de hand van de knoppen naast de sprite bovenaan de scriptzone. Daar kun je kiezen om de sprite ofwel volledig te laten draaien, enkel naar links of naar rechts of de sprite niet te laten draaien.
Reflecteren Hoe verliep het programmeren? Waar zaten de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
2.3
VARIABELEN
2.3.1
INLEIDING
Gegeven Samantha begroet ons op school, eerst vraagt ze onze voornaam en daarna begroet ze ons door te zeggen: Hallo + voornaam.
Analyse Wat is de variabele in het voorbeeld Hallo? De voornaam die je opgeeft. Welke naam geef je aan de variabele? Voornaam.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 16
1
Analyseer per gebeurtenis de gegevens, invoer, verwerking en uitvoer. Sprite1 Gebeurtenis: Na het klikken op het vlaggetje Gegevens
Samantha vraagt onze voornaam.
Invoer
Je voornaam
Verwerking
Hallo + je voornaam samenvoegen
Uitvoer
Zeg: hallo + je voornaam.
2 3
Stel het Nassi-Shneidermanndiagram op. Noteer aan de hand van welke gebeurtenis het programma zal starten. Procedure: Starten programma Gebeurtenis: Na het klikken op het vlaggetje Vraag: wat is je voornaam? Zeg: voeg(hallo + je voornaam) samen.
Uitvoeren 1 2
Voer het programma uit. Sla op onder de naam Hallo.
Controleren Zijn de uitkomsten correct? Ja.
Reflecteren Hoe verliep het programmeren voor jou? Waar zaten de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 17
2.4
THEORIE
2.4.1
DE SEQUENTIE
De sequentie is de structuur waarbij opdrachten in volgorde worden uitgevoerd.
2.4.2
ALGORITME
Een eindige reeks opdrachten of instructies noemen we een algoritme. Algoritmen komen vaak in het dagelijkse leven voor.
2.4.3
SIGNALEN
Met behulp van signalen kunnen objecten met elkaar communiceren.
2.4.3.1 VOORBEELD Een prinses is een wandelingetje aan het maken in het bos en komt daar een fee tegen. Aan de fee vraagt ze hulp, ze zoekt haar koene ridder. Nadat de fee haar toverspreuk (biebediebabedieboe) uitspreekt, verdwijnt zij en verschijnt er een ridder in de plaats. De prinses is hier heel gelukkig om en zegt dat alles wel op een sprookje lijkt! Dit alles start na het klikken op het vlaggetje. De sprites spreken in feite met elkaar, dit is mogelijk dankzij het gebruik van signalen.
Programmeerblokken in Scratch: De prinses vraagt aan de fee voor hulp.
Sylvie Vergote
Wanneer de fee (sprite2) haar signaal ontvangt, spreekt ze haar toverspreuk uit, waarna zij verdwijnt en de ridder in de plaats komt.
Voorlopige versie Bachelorproef 2011-2012
p. 18
2.4.3.2 SIGNALEN VERSTUREN 1
Selecteer de sprite, waarvan je wilt dat het signaal vertrekt.
2 3
Kies voor de categorie Besturen. Sleep de programmeerblok zend signaal naar de scriptzone.
4
Klik op de het pijltje omlaag en kies voor nieuw.
5
Dan wordt er een berichtvenster geopend om je signaal een naam te geven. Kies een passende naam, bijvoorbeeld: Vleermuis.
6 7
Klik op OK. Deze programmeerblok kun je vastklikken aan andere programmeerblokken op het moment dat je het signaal wilt versturen.
8
Selecteer nu de sprite die het signaal moet ontvangen.
9 Kies opnieuw voor de categorie Besturen. 10 Sleep de programmeerblok 11 Klik op het pijltje omlaag. Kies nu welk signaal de sprite moet ontvangen (hier bijvoorbeeld signaal Vleermuis). Aan deze programmeerblok kun je nu nog programmeerblokken toevoegen zodanig dat de sprite weet wat hij moet doen wanneer het signaal ontvangen wordt.
2.4.4
VARIABELEN
2.4.4.1 WAT IS EEN VARIABELE? Een variabele is een plaats in het geheugen waarin je tijdelijk een waarde (een getal, een naam, een resultaat) kunt opslaan. Variabelen geef je telkens een naam en aan de hand van die naam verwijs je naar de waarde van de variabele.
2.4.4.2 HOE VARIABELEN GEBRUIKEN IN SCRATCH? 1
Open een nieuw bestand.
2
Ga naar het menu Variabelen.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 19
3
Klik daarna op de knop Een nieuwe variabele maken. Geef een naam aan de variabele: Voornaam. Start je variabelenaam altijd met een hoofdletter. Geef de variabele een logische naam zodat je altijd weet wat de inhoud van de variabele is. Je kunt kiezen of alle sprites mogen gebruik maken van deze variabele of enkel de huidige sprite. Kies je voor de optie Alleen voor deze sprite zal je de variabele en bijhorende programmeerblokken enkel bij die bepaalde sprite terugvinden. Selecteer de optie: Voor alle sprites.
4
Kies dan voor OK.
Na het maken van de variabele verschijnen nieuwe programmeerblokken. Deze blokken kun je in je code gebruiken.
Door het selectievakje naast de variabele aan te vinken kun je de waarde van de variabele laten weergeven op het scherm. Je kunt natuurlijk ook de programmeerblokken toon / verberg variabele gebruiken. Om een variabele te gebruiken moet je deze een waarde toekennen. Om een waarde toe te kennen aan een variabele werken we met 1 toekenningsoperatoren , hiervoor bestaat de programmeerblok maak Voornaam … bij de categorie variabelen. 5
Sleep deze programmeerblok naar de scriptzone. Welke waarde heeft de variabele Voornaam gekregen? Sylvie. Waar zie je dit? Op de stage. Als antwoord op een vraag voorziet Scratch ALTIJD een standaardvariabele, namelijk antwoord. Daarna moet jij de variabele antwoord koppelen aan jouw variabele.
1
6
Voeg deze programmeerblokken toe aan je scriptzone.
7
Sla op onder de naam VragenNaam.
Een toekenningsoperator wordt dus gebruikt om de variabele een waarde toe te kennen.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 20
2.4.4.3 WEERGAVE VAN DE VARIABELE Als je de variabele weergeeft in de stage heb je 3 weergaven.
Normaal:
Groot:
Schuif:
2.4.4.4 INITIALISEREN VAN VARIABELEN Het initialiseren van variabelen gebruik je om je variabele bij het starten van je programma al een waarde te geven. Deze waarde kan net zo goed niets (leeg) zijn. Je geeft dus je variabele aan de hand van je toekenningsoperator een waarde.
2.4.5
CONSTANTEN
2.4.5.1 WAT IS EEN CONSTANTE? Variabelen waarvan de waarde niet mag wijzigen tijdens de uitvoering van het programma, noemen we een 2 constante . Om aan te duiden dat je met een constante werkt, kun je dit duidelijk maken via de naam, bijvoorbeeld: ConVoorbeeld. De waarde van de constante moet niet gewijzigd worden. Indien je de waarde wilt laten variëren moet je een variabele maken en geen constante.
2.4.5.2 HOE GEBRUIKEN IN SCRATCH? Je maakt een constante op dezelfde manier als een variabele. Bij de toekenningsoperator vul je dan enkel een vaste waarde in. Bijvoorbeeld: om een persoonlijk wachtwoord te maken, werk je altijd eerst met een vast getal en daarna voeg je daar de voorlaatste letter van je naam aan toe.
ConstGetal is dus de constante, aan de hand van de toekenningsoperator krijgt de constante de vaste waarde 67.
Constante
Naam is een variabele, de waarde is afhankelijk van het antwoord op de vraag. Variabele
2
In Scratch is er niet echt een specifiek onderscheid tussen variabelen en constanten (tenzij in de naamgeving).
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 21
2.4.6
REKENKUNDIGE OPERATOREN EN EENVOUDIGE FUNCTIES
Rekenkundige operatoren Bijvoorbeeld: 1 + 2
Tekst functies Dankzij de functie voeg … en … samen kun je variabelen, tekst en getallen in één zin laten weergeven. De functie letter … van … haalt een specifieke letter uit een woord of variabele. De functie lengte van … bepaalt de lengte van een woord of variabele. Wiskundige functies De functie willekeurig getal tussen … laat een willekeurig getal genereren door een zelf op te geven minimum en maximum waarde. De functie modulo bepaalt de rest waarde bij de deling van 2 getallen. De functie wortel bepaalt de wortel van een getal. Je kunt via de keuzelijst ook nog andere functies selecteren.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 22
2.5
LET THE GAME BEGIN
Om de leerstof uit de vorige hoofdstukken te verwerken, heb je nu een hoofdstuk vol met oefeningen, veel plezier! De naam waaronder je het programma moet opslaan, wordt vermeld naast het nummer van de oefening. De bliksemschichten duiden de moeilijkheidsgraad van de oefening aan. Sla op in je eigen map! Oefening 1: Visjes
Sien is een visje in de diepe blauwe zee en zwemt zonder problemen overal heen. Sien zwemt omhoog wanneer je het pijltje omhoog indrukt, omlaag wanneer je het pijltje indrukt, naar links of naar rechts afhankelijk van het pijltje naar links of naar rechts. Oefening 2: Tekenen Ons katje wandelt doorheen de stage, maar laat telkens een spoor na. Net zoals de oefening hierboven wandelt de kat naar boven, onder, links of rechts afhankelijk van het ingedrukte pijltje. Laat de kleur van het spoor variëren met een willekeurig getal tussen 0 en 10.
Oefening 3: Welkom Een lief oud vrouwtje (sprite: womanwaving) vraagt altijd eerst je naam en heet je daarna persoonlijk welkom. Indien je op het vlaggetje klikt, start het programma. Kies zelf een leuke achtergrond.
Oefening 4: Slimme Sam Sam krijgt wat extra zakgeld Zowel van zijn Oma als van zijn ouders. Natuurlijk wil Sam berekenen hoeveel extra zakgeld hij nu in het totaal heeft. Kun jij hem helpen? Na het klikken op Sam toont hij eerst volgende boodschap: “Geef de 2 bedragen op.”
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 23
Oefening 5 Ballet Elsje volgt balletlessen, wanneer je a indrukt op het toetsenbord vraagt de lerares om de attitude uit te voeren, wanneer je de p indrukt op het toetsenbord vraagt de lerares plié uit te voeren en wanneer je r indrukt op het toetsenbord vraagt de lerares om relevé uit te voeren. Na elke oefening moet Els terugkeren naar de beginhouding en stopt de oefening. Tijdens de oefening speelt het geluid Xylo1 af.
Oefening 6: Begroeting Twee vriendjes ontmoeten elkaar en begroeten elkaar. De sprites communiceren aan de hand van signalen.
Oefening 7: Sommen
We willen een sprite laten hoofdrekenen. Indien je klikt op de sprite kun je 2 getallen ingeven zodat de sprite de som uitrekent en het resultaat toont. Oefening 8: Muziek Kies als sprite een muziekinstrument. Na het klikken op het vlaggetje wordt in Scratch het juiste instrument bepaald. Daarna als je op de letters a, z, e, r, t of y klikt wordt een noot afgespeeld op het eerder bepaalde instrument. Kies 1 instrument voor je programma. Sla op onder de naam Muziek.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 24
Oefening 9: Kunstvliegen
Laat een vliegtuig meetkundige figuren in de lucht tekenen. Zorg ervoor dat het tekenen niet te snel uitgevoerd wordt (na elke zijde van de figuur een tel wachten bijvoorbeeld). Start met het vliegtuig een vierkant te laten tekenen en probeer daarna een gelijkzijdige driehoek. Extra: laat de penkleur willekeurig wijzigen. Wanneer je op het vlaggetje klikt, tekent het vliegtuig een vierkant in de lucht. Klik je op de spatiebalk tekent het vliegtuig een gelijkzijdige driehoek in de lucht. Laat bij het starten van de oefening het vliegtuig altijd starten vanaf dezelfde coördinaten. Indien je tijd over hebt, kun je zelf een toffe achtergrond tekenen.
Analyse Om te draaien in de gewenste richting moet je werken met graden. Scratch helpt je hierbij de juiste keuze maken (zie schermafdruk).
Je kunt ook volgende programmeerblok gebruiken: draai links … graden. Het enige verschil tussen de 2 programmeerblokken is dat de programmeerblok richt naar … graden niet werkt met negatieve waarden en de programmeerblok draai … graden wel. Oefening 10: DancingQueen
Beyoncie toont op het podium haar talenten, na een korte intro start ze met zingen (geluid: Ooobadada) terwijl ze 10 stappen naar rechts neemt en daarna opnieuw naar links, met telkens één tel tussen het verlopen. Na één tel geeft Beyoncie het signaal dat de achtergrond mag worden gewijzigd.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 25
3
WAT ALS…
3.1
EENZIJDIGE SELECTIE
Gegeven Joris is een uitzonderlijke hiphopper, enkel wanneer hij een getal kleiner dan 5 krijgt, maakt hij een move op het geluid Hiphop, geef je een getal groter dan 5 op, gebeurt er niets. Start het programma na klikken op de sprite.
Analyse 1
Analyseer per gebeurtenis, de gegevens, invoer, verwerking en uitvoer. Gebeurtenis: Na klikken op de sprite Invoer
Getal
Verwerking
/
Uitvoer
Getal <5: dan wisselt het uiterlijk en zegt hij Alright, anders niets.
2
Stel het Nassi-Shneidermanndiagram op. DOE: wissel naar start uiterlijk SCHRIJF: Hey, als je een getal kleiner dan 5 opgeeft, doe ik een toffe move! VRAAG: Welk getal geef je op? LEES: GETAL
GETAL < 5? JA
NEE
DOE: geluid afspelen DOE: wissel uiterlijk SCHRIJF: Alright
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 26
Uitvoeren Maak nu de oefening in Scratch. Sla op onder de naam Dansen.
Controleren Geef een getal kleiner dan 5 en groter dan 5 op, is de uitvoer correct?
Reflecteren Hoe verliep het programmeren voor jou? Wat waren de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
3.2
TWEEZIJDIGE SELECTIE Getal < 5
Getal > 5
Gegeven Joris vraagt om een getal, is het hoger dan 5 dan lacht Joris ons uit en zegt ons om het opnieuw te proberen, is het opgegeven getal kleiner dan 5, dan doet Joris een move op de muziek.
Analyse 1
Analyseer per gebeurtenis, de gegevens, invoer, verwerking en uitvoer. Gebeurtenis: Na klikken op de sprite
2
Invoer
Getal
Verwerking
/
Uitvoer
Getal <5: dan wisselt het uiterlijk, getal > 5: word je uitgelachen en zegt dat je het maar moet opnieuw proberen.
Stel het Nassi-Shneidermanndiagram op.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 27
DOE: wissel naar start uiterlijk SCHRIJF: Hey, als je een getal kleiner dan 5 opgeeft, doe ik een toffe move! VRAAG: Welk getal geef je op? LEES: GETAL DOE: wissel naar start uiterlijk
GETAL < 5 JA
NEE
DOE: geluid afspelen
DOE: geluid afspelen
DOE: wissel uiterlijk
SCHRIJF: Haha, probeer het opnieuw
SCHRIJF: Alright
Er wordt dus slechts één opdracht uitgevoerd: of de linkeropdracht of de rechteropdracht. De opdrachten kunnen nooit alle twee uitgevoerd worden, omdat de voorwaarde ofwel WAAR ofwel ONWAAR is. Is de voorwaarde WAAR, dan geldt de linkeropdracht. Is de voorwaarde ONWAAR, dan geldt de rechteropdracht.
Uitvoeren Maak nu de oefening in Scratch. Sla op onder de naam Dansen.
Controleren Controleer opnieuw met eenvoudig te controleren jaartallen, zoals je eigen geboortejaar en dergelijk. Is dit correct? .........................................................................................................................................................................................
Reflecteren Moet je hier de variabelen eerst gelijk stellen aan 0 voor het vragen naar de waarde van de variabelen? Neen, omdat de variabelen bij het opnieuw uitvoeren van de code opnieuw een nieuwe waarde krijgen. (De waarde wordt automatisch gewist, eenmaal je ze een nieuwe waarde geeft). Hoe verliep het programmeren voor jou? Wat waren de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 28
3.3
GENESTE SELECTIE
Getal < 5
Getal tussen 5 en 10
Getal > 10
Gegeven Joris heeft een nieuwe truc erbij! Wanneer je een getal ingeeft kleiner dan 5 doet hij een move op het geluid Hiphop, geef je een getal tussen 5 en 10 in, dan start Joris met beatboxen (geluid Beatboxer1). Geef je een getal in groter dan 10, dan lacht hij je uit en zegt je dat je het maar opnieuw moet proberen. In tabelvorm: Getal <5
Move op de muziek.
> 5 en 10
Starten met beatboxen.
> 10
Je wordt uitgelachen.
Analyse 1
Analyseer per gebeurtenis, de gegevens, invoer, verwerking en uitvoer. Gebeurtenis: Na klikken op de sprite Invoer
Getal
Verwerking
/
Uitvoer
Getal <5: dan wisselt het uiterlijk, getal > 5: word je uitgelachen en zegt dat je het maar moet opnieuw proberen.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 29
2
Stel het Nassi-Shneidermanndiagram op. DOE: wissel naar start uiterlijk SCHRIJF: Hey, als je een getal kleiner dan 5 opgeeft, doe ik een toffe move! VRAAG: Welk getal geef je op? LEES: GETAL DOE: wissel naar start uiterlijk
GETAL < 5? JA
NEE
DOE: geluid afspelen DOE: wissel uiterlijk
GETAL < 10?
SCHRIJF: Alright DOE: geluid afspelen
DOE: geluid afspelen
SCHRIJF: I’m a real beatboxer
SCHRIJF: Haha, probeer het opnieuw
Uitvoeren Wanneer start de code? Na het klikken op het vlaggetje. Moet je hier de variabelen eerst gelijk stellen aan 0 voor het vragen naar de waarde van de variabelen? Neen, omdat de variabelen bij het opnieuw uitvoeren van de code opnieuw een nieuwe waarde krijgen de waarde wordt automatisch gewist, eenmaal je ze een nieuwe waarde geeft.
Controleren Is de uitvoer correct? .........................................................................................................................................................................................
Reflecteren Hoe verliep het programmeren voor jou? Wat waren de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 30
3.4
THEORIE
3.4.1
DE EENZIJDIGE SELECTIE
Eenzijdige selectie: als aan de voorwaarde voldaan wordt, zal de sprite een opdracht uitvoeren. Anders gebeurt er niets. Afhankelijk van je voorwaarde kun je dus kiezen om bepaalde opdrachten uit te voeren of om ze over te slaan. Om de voorwaarde op te bouwen maak je gebruik van operatoren. Je hebt 3 soorten operatoren in Scratch, namelijk:
rekenkundige (zie pagina 20); vergelijkingsoperatoren; logische operatoren.
Toekenningsoperatoren horen hier niet bij omdat deze gebruikt worden om een variabele een waarde te geven, maar niet om iets uit te rekenen of te gebruiken om variabelen te vergelijken. In het voorbeeld Dansen werd de volgende voorwaarde gebruikt (zie schermafdruk rechts). Wat gebeurt er hier, wordt er iets berekend of is er een vergelijking? Men vergelijkt of de waarde van de variabele kleiner is dan 5. Welke soort operator wordt hier dus gebruikt? Een vergelijkingsoperator.
Vergelijkingsoperatoren In een voorwaarde staat altijd een vergelijkingsoperator. De uitkomst van deze operatoren kan slechts twee antwoorden hebben: waar of onwaar. Bijvoorbeeld: kinderen jongeren dan 4 jaar mogen gratis naar een pretpark. Hoe lees je volgende voorwaarde? Als Getal1 kleiner is dan Getal2 moet er een bepaalde code uitgevoerd worden. Hoe lees je volgende voorwaarde? Als Getal1 gelijk is aan Getal2 moet er een bepaalde code uitgevoerd worden. Hoe lees je volgende voorwaarde? Als Getal1 groter is dan Getal2 moet er een bepaalde code uitgevoerd worden. Hoe lees je volgende samengestelde voorwaarde? Als Getal1 groter is dan Getal2 of als Getal1 = Getal2. In deze voorwaarde zie je een voorbeeld van het nesten van programmeerblokken. Welke operatoren worden gebruikt in deze voorwaarde? Vergelijkings – en logische operatoren.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 31
Logische operatoren Logische operatoren worden gebruikt bij samengestelde voorwaarden. Bijvoorbeeld: wanneer kun je gebruik maken van het seniorentarief bij de trein? ALS je 65 jaar of ouder bent EN je komt op dezelfde dag terug EN je vertrekt niet voor 9:00 op weekdagen. Hoe lees je de volgende voorwaarde: Als getal1 kleiner is dan getal2 en als getal1 groter is dan 0 dan zegt de sprite hoi. Zegt de sprite ook hoi als Getal1 > Getal2 en Getal1 > 0? Neen, er moet aan beide voorwaarden voldaan worden. Hoe lees je de volgende voorwaarde:. Als getal1 kleiner is dan getal2 of als getal1 groter is dan 0 dan zegt de sprite hoi. Zegt de sprite ook hoi als Getal1 < Getal2, maar Getal1 < 0? Ja, de code wordt uitgevoerd als aan één van beide voorwaarden voldaan wordt. Hoe lees je de volgende voorwaarde: De sprite zegt hoi als getal1 niet kleiner is dan getal2, in alle andere gevallen dus wel. Zegt de sprite hoi als Getal1 = 3 en Getal2 = 4? Neen, enkel als Getal1 groter is dan Getal2 zegt de sprite hoi.
3.4.2
DE TWEEZIJDIGE SELECTIE
Met de tweezijdige selectie kun je een aantal opdrachten laten uitvoeren indien aan de voorwaarde wordt voldaan. Indien niet aan de voorwaarde wordt voldaan worden er andere opdrachten uitgevoerd.
3.4.3
DE GENESTE SELECTIE
Het is mogelijk dat je in een keuze-structuur nog een andere keuze structuur nodig hebt. De verschillende keuzestructuren worden dan in elkaar genest. Bij de geneste selectie zijn er meer dan twee voorwaarden. Er kan maar aan één van deze voorwaarden voldaan worden. De opdrachten volgens deze voorwaarden worden dan uitgevoerd.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 32
Nesten van keuzestructuren
3.4.4
SUBPROCEDURES
Oefening Er is een meisje aan het wandelen door het bos (sprite besturen aan de hand van de pijltjestoetsen). Wanneer het meisje tegen het monster aanloopt, schreeuwt ze het uit, anders gebeurt er niets.
Bij de twee procedures komt dus telkens dezelfde code terug. Deze code wordt het best geplaatst in een apart subprocedure zodanig dat wanneer je wijzigingen moet aanbrengen, je dit maar één maal moet aanpassen in je programma. De signalen verwijzen telkens naar de subprocedure die moet worden uitgevoerd.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 33
3.5
OEFENEN, OEFENEN EN NOG EENS OEFENEN
Tip: maak eerst de analyse via het Nassi-Shneidermanndiagram! Heb je moeilijkheden bij het maken van het diagram, ga dan naar het hoofdstuk Hulp. Vergeet niet tijdig op te slaan! Oefening 1: Baby
Ja? Geluid: LaughFemale
Neen? Geluid: BabyCry
Baby Louis vraagt je of je zijn mama wilt zijn, antwoord ja dan is hij gelukkig en begint hij te lachen, antwoord je neen dan is hij ongelukkig en begint hij te huilen. Oefening 2: OperationDessert
Onze kat is aan het wandelen in de woestijn, wanneer ze tegen een cactus loopt schreeuwt ze het uit van de pijn en zegt ze: “Pijnlijk!”. Maak gebruik van subprocedures! Oefening 3: HuppelendeKat
De kat van Scratch huppelt zodra je op het vlaggetje klikt. Telkens laat ze ons weten in welke hoek ze staat, bijvoorbeeld in de linkeronderhoek.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 34
Oefening 4: Voornamen
Beatrice is aan het oefenen op de grammatica van woorden. Ze houdt zich momenteel bezig met de lengte van woorden, wanneer je haar een voornaam opgeeft die uit meer dan 5 tekens bestaat zegt ze: “Wat een lange voornaam” anders zegt ze: “Dat is maar een korte voornaam!”. Oefening 5: TuimelenSpringenVerkleden Tuimelen
Springen
Verkleden
De kat van Scratch is een echte showbizz kat, eerst vraagt ze jou om een getal, wanneer je één ingeeft, tuimelt ze, geef je twee ingeeft, springt ze omhoog en daarna weer omlaag en wanneer je drie ingeeft, verkleedt ze zich. Oefening 6: Garfield
Garfield is een bange kat, als hij tegen een muis aanloopt, loopt hij telkens de schrik van zijn leven op. Garfield wordt bestuurd door de pijltjestoetsen (hij gaat enkel van links naar rechts en omgekeerd). Werk met een subprocedure.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 35
Oefening 7: VisjesEten
Aantal < 50
Aantal > 50 en < 100
Aantal > 100
Sharky de haai vraagt aan ons hoeveel visjes hij zou eten, is het aantal kleiner dan 50 dan geeft hij een gepaste reactie en “verdikt” de haai (creëer dit effect aan de hand van het effect Vissenoog).
Minder dan 50 > 50 < 100 > 100
Aantal visjes “Mjamie” Vissenoog effect op 50 “Dat is wel veel” Vissenoog effect op 100 “Ik voel me nogal opgeblazen” Vissenoog effect op 150
Start het programma aan de hand van het vlaggetje. Oefening 8: Leeftijd Leeftijd <5
Leeftijd < 12
Leeftijd < 18
Leeftijd < 65
Leeftijd > 65
Brenda vraagt om je geboortejaar, hierop berekent zij jouw leeftijd en wijzigt ze haar uiterlijk en reageert ze met een passende reactie. Leeftijd Jonger dan 5 jaar
“Jij bent nog erg jong!”
Jonger dan 12 jaar
“Jij bent al een heus kindje!
Jonger dan 18 jaar
“Een jongvolwassenen!”
Jonger dan 65 jaar
“Eindelijk volwassen!”
Ouder dan 65 jaar
“Tijd om het wat rustiger aan te doen!”
Start het programma aan de hand van het vlaggetje.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 36
Oefening 9: Dating
Een meisje zegt tegen een jongen: “Hoi! Hoe oud ben jij?”, waarop de jongen aan ons vraagt: “Wat zou ik antwoorden?”. Afhankelijk van dit antwoord zal het meisje anders reageren. Leeftijd
Antwoord
< 18
Oei, te jong!
Tussen 18 en 30
Ah, ideaal, zin om eens uit te gaan?
> 30
Oei, te oud!
Laat de sprites signalen sturen naar elkaar. Start het programma aan de hand van het vlaggetje. Oefening 10: RadenGetal
Sam bedenkt een willekeurig getal tussen 0 en 10 wanneer je op hem klikt. Dit getal moet je raden. Als het getal dat je ingeeft te hoog is, moet de melding “lager” weergegeven worden, anders (als het getal te laag is) moet de melding “hoger” weergegeven worden. Als je het getal geraden hebt, moet de melding “Je hebt gewonnen!” weergegeven worden. Het raden van het getal start na het klikken op het vlaggetje. Het te raden getal mag niet zichtbaar zijn in de stage!
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 37
4
HERHALEN TOT …
4.1
ONEINDIGE HERHALING …
Gegeven Het is Halloween! ’s Nachts zweeft Casper het kleine spookje rond: om de 0,5 tellen verschijnt hij en na 0,5 tellen verdwijnt hij opnieuw. Casper is dus 0,5 tellen zichtbaar. Casper wijzigt ook telkens zijn eigen grootte. Dit houdt nooit op. Start het programma na het klikken op het vlaggetje.
Analyse 1
Analyseer per gebeurtenis, de gegevens, invoer, verwerking en uitvoer. Gebeurtenis: Na klikken op de sprite
2
Invoer
/
Verwerking
/
Uitvoer
Herhaalt: na 0,5 tellen verschijnen in willekeurige grootte op willekeurige plaats en verdwijnt na 0,5 tellen verdwijnt het spookje opnieuw.
Stel het Nassi-Shneidermanndiagram op. HERHAAL DOE: Verdwijn DOE: 0,5 tellen wachten DOE: Ga naar willekeurig x en y positie tussen -100 en 100 voor de x en y coördinatie DOE: Willekeurige grootte tussen - 100 en 50 DOE: Verschijn DOE: 0,5 tellen wachten
Uitvoeren 1
Maak nu het programma in Scratch.
2
Voer de code uit.
3
Sla op onder de naam spoken.
Controleren Controleer of het spookje blijft verschijnen en verdwijnen op willekeurige plaatsen met een willekeurige grootte.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 38
Reflecteren Hoe verliep het programmeren voor jou? Waar zaten de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
4.2
DE BEGRENSDE HERHALING
Gegeven Sara moet verplicht elke dag 10 stappen nemen om wat aan haar lichaamsconditie te werken. Elke keer dat ze een stap neemt, telt ze deze. Laat het programma starten na het klikken op Sara.
Analyse 1
Analyseer per gebeurtenis, de gegevens, invoer, verwerking en uitvoer. Gebeurtenis: Na klikken op de sprite
2
Gegevens
1 stap nemen, teller verhogen met 1, het al genomen stappen laten weergeven, 0,5 tellen wachten, uiterlijk wijzigen, omkeren wanneer we de rand raken.
Invoer
/
Verwerking
Teller = Teller + 1 na één stap
Uitvoer
1 stap nemen, teller verhogen met 1, het al genomen stappen laten weergeven, 0,5 tellen wachten, uiterlijk wijzigen, omkeren wanneer we de rand raken.
Stel het Nassi-Shneidermanndiagram op. HERHAAL 10 MAAL DOE: Neem 1 stap DOE: Teller veranderen met 1 / Teller = Teller + 1 SCHRIJF: aantal stappen DOE: 0,5 tellen wachten DOE: Volgend uiterlijke nemen DOE: Keer om als aan rand
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 39
Uitvoeren 1
Maak nu het programma in Scratch.
2
Voer de code uit.
3
Sla op onder de naam StappenTellen.
Controleren Controleer of het aantal stappen overeenkomt met het getelde aantal stappen.
Reflecteren Hoe verliep het programmeren voor jou? Waar zaten de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
4.3
DE VOORWAARDELIJKE HERHALING
Gegeven Als je wandelt in het Toverbos houdt de heks Miranda je altijd tegen. Enkel nadat je haar het volledig juiste antwoord hebt gegeven op haar raadsel verdwijnt ze en kun je verder wandelen. Geef je het verkeerde antwoord of een antwoord dat niet volledig gelijk is aan het hare, start het spelletje opnieuw tot je het volledig juist antwoord kunt geven. Start het programma na het klikken op het vlaggetje.
Analyse 1
Analyseer per gebeurtenis, de gegevens, invoer, verwerking en uitvoer voor de sprite. Gebeurtenis: Na klikken op het vlaggetje Invoer
Antwoord op de vraag
Verwerking
/
Uitvoer
Lus blijft lopen tot Antwoord = “er is maar 1 paus”. Daarop verdwijnt het heksje en wijzigt de achtergrond.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 40
2
Stel het Nassi-Shneidermanndiagram op voor de sprite. ANTWOORD = 0 HERHAAL TOT ANTWOORD = “er is maar 1 paus” SCHRIJF: Als jij het antwoord op het raadsel weet, laat ik je door. SCHRIJF: Hoe begroeten 2 pausen elkaar? VRAAG: Wat is je antwoord? ANTWOORD = ANTWOORD (op vraag) DOE: Verdwijn (sprite) DOE: Zend signaal Juist! (naar achtergrond)
3
Bij de voorwaardelijke herhaling kan dus gewerkt worden met herhaal tot en herhaal als. Hieronder zie je hoe het programma opgebouwd wordt indien we werken met herhaal als. ANTWOORD = 0 HERHAAL ALS NIET(ANTWOORD = “er is maar 1 paus”)
3
SCHRIJF: Als jij het antwoord op het raadsel weet, laat ik je door. SCHRIJF: Hoe begroeten 2 pausen elkaar? VRAAG: Wat is je antwoord? ANTWOORD = ANTWOORD (op vraag) 4
Analyseer per gebeurtenis, de gegevens, invoer, verwerking en uitvoer voor de achtergrond. Gebeurtenis: Na klikken op het vlaggetje Gegevens
Wijzigen uiterlijk naar startachtergrond.
Invoer
/
Verwerking
/
Uitvoer
Wijzigen uiterlijk naar uiterlijk1.
Gebeurtenis: Na ontvangen signaal Juist! e
Gegevens
Wijzigen uiterlijk naar 2 achtergrond.
Invoer
/
Verwerking
/
Uitvoer
Wijzigen uiterlijk naar Woods-and-bench.
Uitvoeren 1
3
Maak nu het programma in Scratch.
We blijven herhalen zolang het antwoord niet gelijk is aan “er is maar 1 paus”.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 41
2
Voer de code uit.
3
Sla op onder de naam Toverbos.
Controleren Controleer of bij het correcte antwoord de achtergrond wijzigt.
Reflecteren Hoe verliep het programmeren voor jou? Waar zaten de moeilijkheden? ......................................................................................................................................................................................... .........................................................................................................................................................................................
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 42
4.4
THEORIE
4.4.1
ONEINDIGE HERHALING
Deze structuur noemen we de herhaling. Dit kunnen we gemakkelijk toepassen dankzij de programmeerblok Herhaal. Herhaling:
4.4.2
BEGRENSDE HERHALING
Het blokje ‘Herhaal’ zorgt voor een oneindige herhaling. Via het blokje ‘Herhaal x maal’ kun je de herhaling stoppen als een grens wordt bereikt. Programmeerblok in Scratch: begrensde herhaling
Bij de begrensde herhaling worden één of een aantal instructies meerdere keren uitgevoerd. We gebruiken een begrensde herhaling indien we precies weten hoeveel keren een opdracht moet uitgevoerd worden.
4.4.2.1 WERKEN MET EEN LIJST Bij het werken met herhalingen kun je ook waarden van variabelen toevoegen aan een lijst. Bijvoorbeeld we willen een boodschappenlijstje maken, we hebben 10 items nodig. 1
Ga naar het menu Variabelen
2
Kies voor Een nieuwe lijst maken. Geef een naam in.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 43
3
Er verschijnen nieuwe programmeerblokken. De lijst wordt ook weergegeven in de stage.
4
Om tekst en dergelijk toe te voegen aan de lijst gebruiken we de programmeerblok voeg … toe aan Boodschappen.
5
Je kunt ook zoals al eerder vermeld de waarden van variabelen toevoegen aan de lijst. Bijvoorbeeld: we vragen eerst welk product we moeten halen van de winkel en daarna voegen we dit toe aan onze boodschappenlijst (we doen dit 10 x). We starten door te klikken op het vlaggetje, daarop wissen we eerst de volledige lijst. Daarna vragen we 10 maal om een bepaald product die we daarna toevoegen aan de lijst.
4.4.3
VOORWAARDELIJKE HERHALING
Bij de voorwaardelijke herhaling hebben we 2 onderverdelingen:
herhaling tot aan een voorwaarde voldaan wordt.
herhalen zolang (als) aan een voorwaarde voldaan wordt.
Welke soort voorwaardelijke herhaling werd gebruikt in het voorgaande voorbeeld? Er werd herhaald tot er aan een voorwaarde voldaan werd. Bekijk de 2 programmeerblokken, wat is het verschil tussen de 2? Aan de blok herhalen tot kun je nog programmeerblokken aan toevoegen, aan de programmeerblok herhaal als kun je geen programmeerblokken meer toevoegen!
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 44
Herhaal tot: Als aan een voorwaarde voldaan wordt, wordt de lus uitgevoerd, de opdrachten worden nooit uitgevoerd als de voorwaarde oorspronkelijk onwaar is. Herhaal zolang (als): De opdrachten worden uitgevoerd zolang aan de voorwaarde niet wordt voldaan. Eerst wordt dus de voorwaarde getest. Als de voorwaarde waar is, worden alle opdrachten overgeslagen. Als de voorwaarde onwaar is, worden de opdrachten uitgevoerd.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 45
4.5
START TO PRACTICE
Bewaar regelmatig! Kies zelf een sprite en achtergrond. Oefening1: ScoresWedstrijd De oefening start na het klikken op het vlaggetje. Sam houdt alle doelpunten bij van de plaatselijke voetbalclub. Na het klikken op het vlaggetje vraagt Sam om de doelpunten van de laatste 10 matchen, kan jij hem helpen? De doelpunten worden bijgehouden in een lijst.
Oefening 2 DeGoedeFee ’s Nachts is de goede fee aan het rondzweven. Ze wijzigt telkens van plaats (x: tussen -240 en 240 en y: tussen 180 en 180) terwijl ze ondertussen wijzigt van kleur (tussen 0 en 10). Laat de fee keren aan de rand. Tussen elke plaatswijziging wordt telkens eventjes gewacht.
Oefening3: VolgDeMuis
Een kat wil altijd muizen vangen, in dit geval een computermuis. Laat de kat de muisaanwijzer volgen. Wanneer de kat de muisaanwijzer raakt zegt ze: “Ik heb je”. Hierop stopt het script. Oefening4: TafelsVanVermenigvuldiging
Leo De Leeuw is een meester in het vermenigvuldigen: geef hem om het even wel getal op en hij toont in een lijst de tafel van het getal tot en met 10. Na het maken van de lijst zegt Leo van welk getal hij de tafels heeft berekend. Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 46
Het programma start na het klikken op het vlaggetje. Oefening 5: Trainen
Bart is zijn buikspieren aan het trainen. Vandaag mag jij zijn trainer zijn en zelf ingeven hoeveel oefeningen hij moet uitvoeren. Terwijl hij de oefeningen uitvoert, telt Bart mee. Maak gebruikt van één sprite met meerdere uiterlijken, eindig altijd zodanig dat Bart opnieuw in de startpositie ligt. Oefening 6: Papegaai
Flup de papegaai is aan het vliegen, telkens hij de muisaanwijzer raakt vliegt hij ofwel horizontaal ofwel verticaal verder afhankelijk van hoe hij eerst aan het vliegen was. Als Flup de rand raakt, keert hij automatisch om. Zorg ervoor dat het programma niet te vlug wordt uitgevoerd, voorzie tellen op de gepaste plaats. Oefening 7: OmgekeerdSpellen
Gert is meester in het achterste voren opzeggen van woorden. Bijvoorbeeld: zee wordt eez. De code start na het klikken op de sprite.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 47
Oefening 8: DrakenJagen
Onze koene ridder is draken aan het jagen. Help hem om de draak te verslaan. De ridder volgt de muisaanwijzer tot hij de draak raakt. Wanneer de draak geraakt wordt roept de ridder het uit van plezier (gebruik het geluid Ya) en zegt: “De draak is verslagen!” Hierop wordt een signaal gestuurd naar de draak waarop de draak antwoordt: “Dit is het einde.” Daarna verdwijnt de draak en stopt de zoektocht. Extra: laat de draak vuur spuwen. Oefening 9: Namenlijst
Sandra stelt altijd namenlijstjes op voor haar toekomstige kinderen. Je stopt met namen opgeven wanneer je “stop” ingeeft. Stop hoort wel niet thuis in de lijst. Na het maken van de lijst, zegt Sandra hoeveel namen je hebt ingegeven. Je start aan de hand van het vlaggetje, de lijst wordt enkel leeg gemaakt indien je op de (sprite) knop Wissen klikt. Oefening 10: Rekenen
De kat van Scratch kan rekenen op een heel hoog niveau. Je moet telkens de som maken van 2 willekeurige getallen tussen 1 en 20. Als je een juist antwoord geeft, wordt het geluidje Keypickup afgespeeld. Geef je een fout antwoord dan wordt het aantal fouten verhoogd met 1 en krijgt de kat een rood gezicht. De kat blijft oefeningen op ons afsturen tot het aantal fouten groter is dan 3. Dan stopt het script.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 48
5
SAMENVATTING
Structuur
Programmeerblok
Voorbeeld
Sequentie De sequentie is de structuur waarbij opdrachten van boven naar onder worden uitgevoerd. Selectie
Eenzijdige
Eenzijdige selectie: als aan de voorwaarde voldaan wordt, zal de sprite een opdracht uitvoeren. Anders gebeurt er niets.
Tweezijdige
Met de tweezijdige selectie kun je een aantal opdrachten laten uitvoeren indien aan de voorwaarde wordt voldaan (=de ja-kant). Indien niet aan de voorwaarde wordt voldaan (=nee-kant) worden andere opdrachten uitgevoerd. Geneste
Het is mogelijk dat je in een keuzestructuur nog een andere keuze structuur nodig hebt. De verschillende keuzestructuren worden dan in elkaar genest. Natuurlijk moeten het niet altijd keuze structuren zijn dat je nest, je kunt bijvoorbeeld een ALS-structuur en de functie wortel nesten. Herhaling
Oneindige herhaling
Het blokje ‘Herhaal’ zorgt voor een oneindige herhaling.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 49
Bij de begrensde herhaling worden één of meerdere instructies een vast aantal keer uitgevoerd. We spreken van een begrensde herhaling omdat we precies weten hoeveel keer de opdracht uitgevoerd moet worden.
Begrensde herhaling
Herhaal zolang (als):
Voorwaardelijke herhaling
Als aan een voorwaarde voldaan wordt, wordt de lus uitgevoerd, de opdrachten worden nooit uitgevoerd als de voorwaarde oorspronkelijk onwaar is. Herhaal tot: De opdrachten worden uitgevoerd zolang aan de voorwaarde niet wordt voldaan. Eerst wordt dus de voorwaarde getest. Als de voorwaarde waar is, worden alle opdrachten overgeslagen. Als de voorwaarde onwaar is, worden de opdrachten uitgevoerd.
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 50
6
VERSCHILLENDE PROGRAMMEERTALEN
Alles wat je gezien hebt in Scratch is een kleine aanloop om een echte programmeertaal te leren. Veel van wat je gezien hebt in Scratch zal je dan ook herkennen in andere programmeertalen. Je hebt Javascript, deze scripttaal wordt vaak gebruikt om webpagina’s dynamisch te maken. Ook heb je bijvoorbeeld VB.Net, deze taal werd ontwikkeld door Microsoft en wordt gebruikt om professionele programma’s te maken. Kleine vergelijking… Structuur ALS functie
Begrensde herhaling Voorwaardelijke herhaling
Scratch
Javascript If ( ) { opdrachten } Else { opdrachten } For (teller = …; teller <= … ; teller = teller + 1) { opdrachten } While ( … ) { opdrachten }
VB.NET If … Then opdrachten Else opdrachten End if For Teller = … To … Step … opdrachten Next Do While (Until) … opdrachten Loop OF Do opdrachten Loop While (Until)
Bijvoorbeeld de oefening TafelsVanVermenigvuldiging. Volgens Scratch
Javascript function Button1_onclick() { //invoer (commentaar) getal = parseInt(prompt("Geef een getal op","")) product = 0 //verwerking for (teller = 1; teller <= 10 ; teller = teller + 1) { product = getal * teller document.write(teller, " x " , getal, " = ", product,"
") } }
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 51
VB.Net Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton1.Click Try 'declareren van variabelen Dim snggetal As Single snggetal = txtTafels.Text 'tafels berekenen For i = 1 To 10 Dim cel As New TableCell Dim rij As New TableRow cel.Text = snggetal & " * " & i & " = " & (snggetal * i) rij.Cells.Add(cel) tblTafels.Rows.Add(rij) Next Catch ex As Exception MsgBox("Gelieve een getal in te voeren!") End Try End Sub
Bronnen http://users.skynet.be/kristof.tielens/VBA/voorwaardelijk6.html Cursus Dries Vandewalle Algoritemen met asp Cursus Hans Jürgen Coppens Cursus Visual studio 2010 Express http://nl.wikipedia.org/wiki/Programmastructuur-diagram
Sylvie Vergote
Voorlopige versie Bachelorproef 2011-2012
p. 52