Programmeren met Simon
Simon de schildpad
©2012 – J van Weert
1
Inleiding: Wat is programmeren eigenlijk? Een computer doet niets zonder een programma. Die programma’s worden geschreven door mensen: “programmeurs”. Programmeren is eigenlijk niets anders dan het schrijven van commando’s voor de computer. Een grote lijst van deze commando’s vormen dan een programma. Het is daarbij heel belangrijk dat je die commando’s heel precies geeft. Een computer kan dan wel een heleboel, maar hij kan alleen maar doen wat hem verteld wordt, dus bij programmeren moet je hem dat heel precies vertellen. Als je in de bovenbouw straks kiest voor het vak Informatica leer je programmeren en gaan we zelf programma’s schrijven. Toch wil ik jullie er nu alvast kennis mee laten maken. We gaan programmeren in LOGO. In LOGO geef je geen commando’s aan de computer zelf, maar aan Simon de schildpad op het scherm. Door het geven van commando’s aan Simon kun je hem laten tekenen. Een lijst van deze commando’s vormt dus eigenlijk een programma voor de schildpad. Je zult zien dat je er best toffe dingen mee kunt tekenen en je leert meteen wat dingen over programmeren.
Opgaven maken Tijdens het doorwerken van dit document kom je af en toe opgaven tegen. Hierbij moet je steeds een programma schrijven voor de schildpad. Je maakt deze programma’s via de Logo website (we leggen zo uit hoe dat werkt). Als het je gelukt is het programma te schrijven, kopieer je deze code in een WORD bestand.
©2012 – J van Weert
2
De eerste stapjes (van Simon) Ga naar de Logo site door op de link te klikken: http://www.stedgymdenbosch.nl/subsites/informatica/data/B1/simon.htm Je krijgt het volgende scherm voor je:
Rechts in het grote witte vlak zie je Simon staan. Om Simon te laten bewegen, moeten we commando’s invoeren in het witte vlak links. Als we klaar zijn met commando’s invoeren, drukken we op de grote knop en Simon zal braaf zijn opdrachten uitvoeren (als je ze goed hebt ingevoerd tenminste!). Als je hulp nodig hebt kun je op de i-knop klikken. Daar wordt vanalles uitgelegd over werken met LOGO. Laten we Simon eens aan de slag zetten. Voer het volgende cammando in en druk op de knop: Vooruit 100 Simon voert braaf de opdracht uit en loopt 100 stapjes vooruit. Je ziet dat hij onderweg een lijn tekent. Zo kunnen we Simon dus laten tekenen! Simon kan natuurlijk meer dan alleen maar vooruit lopen. Hij kan ook draaien. Bij draaicommando’s moet je iets af weten van graden. 360 graden is precies
©2012 – J van Weert
3
helemaal rond. Als je simon dus half rond wil laten draaien (dus eigenlijk wil laten omdraaien) moet hij dus 180 graden draaien (de helft van 360). Als je Simon een kwartslag wilt draaien moet hij 90 graden draaien (een kwart van 360). Typ de volgende commando’s in en klik op de knop: Vooruit 100 Rechts 90 Vooruit 100 Je ziet dat Simon 100 stapjes zet, een kwartslag draait en nog eens 100 stapjes zet.
Opdracht 1a: Laat Simon een vierkant tekenen. Opdracht 1b: Laat Simon een driehoek tekenen. (TIP: Hiervoor zul je iets moeten veranderen aan het draaien, hij moet geen 90 graden draaien. Hoeveel wel? Probeer 360 eens door 3 te delen…) Opdracht 1c: Laat Simon het volgende plaatje tekenen:
De pen aanpassen We hebben gezien dat Simon lijnen kan trekken door te lopen. Als je meerdere losse figuren wilt tekenen, moet je aan Simon kunnen vragen of hij even zijn pen optilt, een stukje verder loopt en daarna zijn pen weer neerzet. Dat kan: geef de volgende commando’s aan Simon: Vooruit 100 Penop Vooruit 50 Penneer Vooruit 100 Simon loopt 100 stapjes, tilt de pen op, loopt 50 stapjes, zet de pen weer neer en loopt 100 stapjes. Zo kun je dus je tekening even onderbreken.
©2012 – J van Weert
4
We kunnen ook een andere penkleur en dikte selecteren. Dat gaat met (bijvoorbeeld) het commando (probeer maar uit): Pen rood 5 Vooruit 100 Je kunt natuurlijk ook een andere kleur en dikte selecteren. De volgende kleuren zijn beschikbaar:
Tot slot kun je ook nog de kleur van de achtergrond veranderen met bijvoorbeeld: Achtergrond blauw Je kunt natuurlijk ook een van de andere kleuren uit de lijst gebruiken. Opdracht 2: Laat Simon jouw naam schrijven. Gebruik verschillende diktes en kleuren. Vergeet ook de achtergrond niet!
Het inkleuren van vlakken Je kunt Simon ook dingen laten inkleuren. Daarvoor moet je Simon eerst een penkleur laten kiezen. Daarna moet je precies vertellen wanneer de vorm die je wilt inkleuren begint en wanneer de vorm eindigt. Als hij dan klaar is met het tekenen van de vorm zal hij hem inkleuren. Probeer de volgende code maar eens uit: pen rood 1 beginvorm vooruit 100 rechts 120 vooruit 100 rechts 120 vooruit 100 eindvorm ©2012 – J van Weert
5
Hierbij kiest Simon dus een rode pen. Daarna weet hij dat er een vorm begint dankzij het commando “beginvorm”. Alle stapjes daarna voert hij gewoon uit (hij tekent een driehoek). Als hij vervolgens het commando “eindvorm” tegenkomt weet hij dat de vorm klaar is en kleurt hij hem in met de gekozen kleur.
Opdracht 3: Probeer Simon eens een huisje te laten tekenen:
LET OP: het is erg lastig om het dakje precies goed te krijgen. Teken eerst het vierkant en kleur het geel. Probeer daarna stap voor stap uit hoe je het rode dakje erop tekent
Herhalen We hebben gezien dat we Simon een reeks commando’s achter elkaar kunnen geven om zo een tekening te maken. De echte kracht van LOGO (en dat geldt ook voor programmeren in het algemeen) is dat je dingen kunt laten herhalen. Hiermee kun je makkelijk ingewikkeldere figuren tekenen zonder hele lange reeksen commando’s te typen. Denk nog even terug aan de eerste opgave. Hierbij moest je een vierkant tekenen. Waarschijnlijk was dit je oplossing: Vooruit 100 Rechts 90 Vooruit 100 Rechts 90 Vooruit 100 Rechts 90 Vooruit 100 Rechts 90
©2012 – J van Weert
6
De code is natuurlijk goed, want Simon tekent netjes een vierkant. Toch is de code een beetje onhandig. Eigenlijk doe je namelijk 4 keer hetzelfde: loop 100 stapjes naar voren en draai 90 graden naar rechts. Dat kun je in LOGO ook een stuk makkelijker schrijven: Herhaal 4 Vooruit 100 Rechts 90 Doe Probeer deze code maar eens uit. Je zult zien dat hij precies hetzelfde vierkant tekent. Je hebt alleen wel maar 4 regels code gebruikt in plaats van 8! Opdracht 4a: Laat Simon met behulp van herhaling een 6-hoek tekenen:
Opdracht 4b: Laat Simon met behulp van herhaling een 8-hoek tekenen:
Opdracht 4c: Laat Simon met behulp van herhaling een cirkel tekenen (dit is stiekem een 360-hoek!):
©2012 – J van Weert
7
Variabelen Een ander krachtig instrument bij programmeren is de variabele. Een variabele geeft je de mogelijkheid om een getal op te slaan en deze in je commando’s te gebruiken. Dat klinkt misschien ingewikkeld, maar een voorbeeld zal het duidelijker maken. In Logo kun je variabelen maken met behulp van het dollarteken ($). Bijvoorbeeld zo: $Lengte = 100 Het $ teken geeft aan dat we met een variabele te maken hebben. De naam van de variabele is “Lengte”. (Deze naam mag je zelf kiezen, we hadden de variabele ook best $Pannenkoek kunnen noemen.) Met behulp van het = teken krijgt de variabele $Lengte de waarde 100. We kunnen deze variabele nu gebruiken in onze commando’s. Wederom het voorbeeld van het vierkant (probeer maar uit): $Lengte = 100 Herhaal 4 Vooruit $Lengte Rechts 90 Doe
Je ziet dat Simon weer netjes het vierkant tekent. In het Vooruit commando wordt de waarde van $Lengte gebruikt (100) Nu is dit voorbeeld niet zo spectaculair, omdat Simon precies hetzelfde vierkant tekent als eerst. De kracht van variabelen wordt pas duidelijk als we de variabele tussendoor van waarde laten veranderen. Probeer het volgende voorbeeld eens uit: $Lengte = 10 HERHAAL 30 Vooruit $lengte Rechts 45 $Lengte = $Lengte + 5 DOE Nu worden de figuren pas echt interessant. De code ziet er misschien wat ingewikkeld uit. We zullen hem hier even uitleggen: Eerst wordt een variabele $Lengte aangemaakt en deze krijgt de waarde 10 Daarna wordt het volgende 30 keer herhaald: - Ga net zoveel stapjes vooruit als de waarde van $Lengte aangeeft - Draai 45 graden naar rechts - Maak de waarde van $Lengte 5 groter ©2012 – J van Weert
8
Omdat de waarde van de variabele $Lengte steeds wordt aangepast, zal Simon elke keer verder naar voren lopen. De 1e keer 10 stapjes, de 2e keer 15 stapjes, de 3e keer 20 stapjes, enzovoort. Tof! Nu zijn we echt aan het programmeren Probeer zelf maar eens te spelen met de getallen in het voorbeeld om te kijken wat er dan met de tekening gebeurt. Verander Rechts 45 bijvoorbeeld eens in Rechts 60. Opdracht 5: Maak nu met alle kennis die je hiervoor hebt opgedaan een toffe tekening. Probeer alle dingen te gebruiken: kleuren, herhalingen, variabelen. Laat het resultaat zien aan je docent en vergeet niet de uiteindelijke code op te slaan.
©2012 – J van Weert
9