Tekenrobot

Je beschikt over een robot die zich kan verplaatsen en zwarte en rode strepen kan trekken. Je opdracht bestaat erin de robot te programmeren zodat hij de tekening hiernaast produceert.

De robot, voorgesteld door de groene driehoek, zal de reeks instructies die je opgeeft 4 keer herhalen. Versleep de instructies hiernaast om je programma op te bouwen.

Beschikbare instructies
Bouw hier je programma
Resultaat na 4 herhalingen

Oplossing

Begin met de gegeven figuur op te delen in vier gelijke stukken, zoals bijvoorbeeld weergegeven in afbeelding nummer 1 hieronder.

Zoek dan de opeenvolging van instructies die ervoor zorgt dat de robot dat stuk tekening genereert, zonder uit het oog te verliezen dat de robot na afloop in de juiste richting moet wijzen opdat de volgende herhaling juist getekend zou worden.

Elk van de 4 herhalingen tekent zo een kwart van de figuur, en aan het einde verkrijg je het gewenste resultaat.

Dit is informatica!

Deze oefening laat het begrip "herhaling" zien, wat in de informatica gerealiseerd wordt door middel van een "lus". Hier bestaat de lus eruit, een reeks instructies precies 4 keer te herhalen. Deze lus laat toe het aantal instructies dat je moet opgeven om de figuur te verkrijgen te verminderen, door de symmetrie in de figuur uit te buiten.

Meer algemeen kan je een lus een wisselend aantal keren laten uitvoeren. Beeld je bijvoorbeeld een programma in dat klokken bestuurt die het uur luiden. Dit programma zal het huidige uur uitlezen en dan de instructie "luid de klok" evenveel keren herhalen als het aantal uren verstreken sinds 's middags of 's middernachts.

Er bestaan ook lussen die hun instructies blijven herhalen tot een gegeven voorwaarde voldaan is. Bijvoorbeeld: als een robot een doolhof verkent, zal hij de handeling "één vakje vooruit stappen" blijven herhalen totdat de voorwaarde "er staat een muur net vóór mij" waar wordt. Op dat ogenblik moet de robot een bocht maken.

Ten slotte bestaan er lussen die hun instructies oneindig lang blijven herhalen en nooit stoppen. Bijvoorbeeld: een programma dat een website serveert is gebaseerd op een "oneindige lus", die bestaat uit het oneindig herhalen van de bewerking "als ik een verzoek ontvang om de inhoud van een gegeven webpagina, stuur ik die door".