Logo

advertisement
Logo
Logo is een programmeertaal waarbij je door middel van
commando’s een driehoekje (een schildpad) over het
scherm beweegt. De schildpad laat daarbij een spoor
achter. Van de programmeertaal LOGO zijn vele
uitvoeringen in omloop.
We bekijken in dit practicum de zogenaamde 'turtle
graphics', aan de hand van deze handleiding.
De meest elementaire instructies bestaan uit het commando geven
om vooruit en achteruit te gaan, en het draaien van het driehoekje met een aantal graden.
Zo kun je op een eenvoudige manier ingewikkelde tekeningen te maken.
Inleiding
Start MSWLogo op, je krijgt het volgende scherm te zien:
kijkrichting
FD 50
De schildpad heeft de vorm van een kleine driehoek in het
midden van het scherm, de ‘kop’ geeft de richting aan
waarin hij ‘kijkt’. Wanneer de schildpad beweegt tekent hij
een lijn achter zich. In dit geval is hem verteld dat hij 50
‘stappen’ naar voren moet gaan door het commando
FORWARD 50, afgekort tot FD 50
Je kunt de schildpad laten draaien door hem te ‘vertellen’
naar rechts of links te gaan. De afbeelding hiernaast toont je
hoe je de schildpad de verschillende richtingen op kunt
laten gaan. In plaats van het typen van RIGHT of LEFT
kun je ook hier afkortingen gebruiken.
De commando’s geef je in het Commander venster, in het invoervak (commandoregel).
De schildpad leert lopen
opdracht 1
Probeer het volgende eens uit:
FORWARD 100
RIGHT 90
FORWARD 100
RIGHT 90
FORWARD 100
RIGHT 90
FORWARD 100
Het resultaat zie je hierboven: een vierkant met zijden van 100 beeldpunten. Let op het
startpunt: In het begin wijst de turtle omhoog, maar na de vierde zijde wijst de turtle naar
links.
Dit is bij het tekenen van complexere vormen van belang, zoals verderop zal blijken.
Je ziet ook dat LEFT een wijziging van ‘kijkrichting veroorzaakt. Programmeurs hebben vaak
een voorkeur voor een zo kort mogelijke schrijfwijze van opdrachten. Zie ook boven. LEFT
kan dan ook geschreven worden als LT, RIGHT kan geschreven worden als RT, FORWARD
kan geschreven worden als FD.
RT staat voor Right Turn, LT staat voor Left Turn. De commando’s worden gevolgd door een
parameter, FD 100 (pixels) en RT 90 (graden)
Een commando of opdracht ziet er nu zo uit: COMMANDO ARGUMENT<RETURN>
Commando
Argument of parameter
Return (Enter )
Wat te doen
Hoeveel te doen
Uitvoeren
Gebruik CS (Wis scherm) tussen elke opdracht om met een schoon scherm verder te gaan, je
kunt ook CLEARSCREEN gebruiken.
Je ziet dat CS geen argument nodig heeft.
Opdracht 2
Schrijf nu de commando’s waarmee een vierkant en een gelijkbenige driehoek worden
getekend.
Probeer dit uit tot je in de opdracht geslaagd bent.
Wat valt er op aan hoeken die je gebruikt?
Herhalingen
REPEAT is een nieuw commando om veelhoeken (polygonen) gemakkelijker en sneller te
kunnen tekenen, zo kun je dit commando gebruiken:
REPEAT n [Commando1 Argument1 Commando2 Argument2 etc. ...]
Het REPEAT commando moet omsloten zijn door vierkante haken, de haken kunnen zoveel
commando-argument-paren bevatten als nodig is.
voorbeelden
Geef de opdracht: REPEAT 7 [FORWARD 5 RIGHT 90 FORWARD 5 RIGHT –90] en kijk
naar het resultaat., probeer dit ook eens: CS REPEAT 20 [FD 100 RT 170]
Probeer met het REPEAT commando de driehoek en het vierkant te tekenen
Schrijf de resultaten in de tabel hieronder.
.
Let op: Je kunt bij toeval de hoek vinden die bij een andere veelhoek hoort, schrijf deze op
voordat je vergeet wat je vond.
polygoon
naam
zijden
driehoek
3
hoek
vierkant
Instructies voor
de schildpad
REPEAT 3 [
FD RT ]
REPEAT
Hier zijn nieuwe commando’s waardoor je kan zien of de getekende vormen goed op elkaar
aansluiten:
HT - Verberg H(ide) T(urtle) schildpad
ST - Toon S(how) (T)urtle schildpad
... en denk er aan dat CS - Clear Screen - je in staat stelt opnieuw te beginnen
polygoon
naam
zijden
hoek
Instructies voor
de schildpad
pentagon
hexagon
Octagon
Nonagon
Decagon
Het zal je opvallen dat de veelhoeken steeds meer op een cirkel beginnen te lijken (De
Grieken gebruiken dan ook al veelhoeken om de waarde van de pi te berekenen).
Probeer nu een cirkel (raadpleeg het helpbestand voor het tekenen van bogen (arc) en cirkels)
Cirkel
Eigen commando’s maken
In de PROCEDURE Modus leer je de schildpad nieuwe trucjes.
We kunnen het woordenboek van de LOGO-taal uitbreiden met nieuwe woorden, die dan óók
als opdrachten geaccepteerd worden. We gaan een vierkant programmeren.
Geef in de opdrachtregel de opdracht: EDIT “ZIJDE (ED “ZIJDE) mag ook
Je komt nu in de Logo-editor. Daar zie je nu staan:
TO ZIJDE
END
Dit geeft aan dat je een nieuwe opdracht maakt.
Typ nu tussen de beide regels: right 90 forward 100
Kies vervolgens voor Save and exit in de menubalk van de editor:
File  Save and exit
Nu is er een 'kladblaadje' gemaakt in de Workspace van het programma, waarop staat wat het
driehoekje moet doen om een ‘zijde’ te maken.
Geef nu de opdracht ZIJDE in de commandoregel.
En daarna nog een keer, en nog een keer, en nog een keer. Wat zie je?
Zo kun je dus ook een vierkant tekenen.
Zo leer je de schilpad een vierkant VIERKANT of VK te tekenen
Je hebt hierbij twee nieuwe commando’s nodig: TO <nieuwe proc> om de leermodus te
starten en END om de leermodus te beëindigen.
Type TO VIERKANT en druk op Enter 
Type je VIERKANT commando’s:. REPEAT
4 [ FD 50 RT 90 ]
en druk op Enter 
Type END om de omschrijving van de
opdracht Vierkantte beëindigen. Het
'Commander' venster zal de gedefinieerde
VIERKANT procedure tonen.
Type nu VIERKANT en druk op Enter  om de schildpad je vierkant te laten tekenen
Opdracht 3
Probeer dit eens te tekenen:
Je wilt de Turtle verplaatsen zonder dat hij iets tekent. Dat doe je met de opdrachten
Penup en Pendown.
Goede stijl
Ontwikkel een goede stijl om procedures een duidelijke naam te geven.
In plaats van vierkant zou je de procedure V, VK of VKNT kunnen noemen of anders wel
doos, misschien wel Jan. Het is een goed idee om de namen kort te houden maar moeten wel
betekenisvol zijn. V kan ook staan voor vakantie of vak, Jan is zeker geen betekenisvolle
naam voor een vierkant.
Een nieuwe procedure maken met EDIT
Je hebt al geleerd hoe een VIERKANT procedure gemaakt kan worden door TO VIERKANT
te gebruiken
Nu zul je leren hoe een DRIEHOEK procedure gemaakt kan worden door middel van ED
“DRIEHOEK
Opdracht 4

Type ED "DRIEHOEK in de Commander Venster 'Input Box' en druk op Enter 

Zet de cursor in het Edit venster achter DRIEKHOEK en druk weer op Enter  om een
lege regel te krijgen met de cursor aan het begin van deze regel




Type nu je DRIEHOEK commando’s REPEAT 3 [ FD 50 RT 120 ] in de lege regel.
Nu kun je de nieuwe procedure opslaan
Selecteer File>Save and Exit en klik met de muis.
Type DRIEHOEK in het invoerveld van het Commandervenster en druk op Enter  om
de nieuwe procedure te testen.
Je kunt een procedures ook klonen (Klonen=een exacte kopie maken)



Type ED "DRIEHOEK in het Commander Venster 'Invulvak en druk op Enter 
Selecteer de hele procedure, inclusief TO en END
Kopieer het gemarkeerde gebied door Edit>Copy of door [Ctrl] [C] (^C)
Nu kan de procedure gekloond worden.



Klik na END en druk tweemaal op Enter 
om een gat te maken tussen de bestaande
Plak de kopie door Edit>Paste of door [Ctrl] [V]
(^V)
De gekloonde procedure kan nu bewerkt worden.

Markeer de ingevoegde procedurenaam
(DRIEHOEK) en type de naam van de gekloonde
procedure: PENTAGON

Selecteer het ‘aantal wendingen' na REPEAT en
type 5 waardoor 3 verwijderd wordt
Selecteer de draaihoek RT en type 72 waardoor 120
verwijderd wordt

Sla nu de gekloonde procedure met File>Save and
Exit.
Test de procedure in het Commander Venster
door ‘PENTAGON’ in het invoervenster te typen.
Herhaal de bovenstaande handelingen voor al je
figuren.
Procedurebestanden opslaan
Nu je de schildpad vele zaken hebt geleerd, heb je een snelle manier nodig om deze zaken
opnieuw ‘aan de schildpad te leren’. Een bestand met procedures kan worden opgeslagen:



Kies eerst File>Save van de MSWLogo Menu Balk en selecteer het station of de directory
waar je de bestanden wilt opslaan. Type daarna SAVE "MyFile3.LGO in het Commander
Venster ‘Invoervak’ (of MyFile4, MyFile5, etc) en druk op Enter.
Kies een bestandnaam kiest die de procedure beschrijft die het bevat.
Wees voorzichtig met het kiezen van een bestandsnaam, als deze al bestaat, zal het al
bestaande bestand overschreven worden door het nieuwe bestand en het oude bestand is
voor altijd verloren!
Een veiligere methode is het
kiezen van File>Save As
waardoor:



het bestandsvenster wordt
geopend waarin de
bestaande bestanden te zien
zijn,
je een nieuwe naam kunt
intypen en
je een bestaande naam
kiest, je gewaarschuwd
wordt.
Opslaan van een bestand met geselecteerde procedures
Het is een goede gewoonte om alleen die procedures op te slaan die overeenkomen met de
beschrijvende bestandsnaam die je gekozen hebt.
Om een geselecteerde lijst van procedures op te slaan, kun je het ‘savelist’ commando
gebruiken: SAVEL [ bloemen GRAS STRUIKEN BOMEN ... etc.] "TUIN
Dit zorgt er voor dat bestanden die niet nodig zijn niet worden opgeslagen. De procedures die
niet nodig zijn kunnen gewist worden, dit is niet noodzakelijk maar je zou daarvoor kunnen
kiezen.
Het laden van procedurebestanden


Selecteer File>Load van de MSWLogo Menu Balk en selecteer het station of de Directory
waar het bestand is opgeslagen.
Type LOAD "MyFile.LGO in het Commander venster ‘Invoervak’ en Enter .
Er kunnen meerdere bestanden worden geladen, wees voorzichtig, procedures in later
aangemaakte bestanden zullen eerder onder dezelfde naam opgeslagen procedures
overschrijven.
Nadat je procedures hebt bewerkt of nieuwe hebt toegevoegd aan de werkruimte (workspace),
krijg je de volgende waarschuwing:
Denk na over de keuze die je dan gaat maken
Je kunt dus je verzameling eigen programma's bewaren op je usb-stick of je werkruimte op
het netwerk. Denk eraan dat bij het laden met de opdracht LOAD dat dan alle eigennamen die
misschien al in je programmageheugen zaten, eerst worden gewist.
Let op, misschien ten overvloede:
Als je de computer uitzet, verdwijnen de programma’s die je hebt gemaakt uit het geheugen.
In dat geval zul je bijvoorbeeld het programma ‘vierkant’ eerst opnieuw moeten maken of van
de usb-stick laden als je het er eerder naar hebt weggeschreven.
We gaan nu procedures maken met een variabel argument: een parameter.
De figuren die je tot nu toe kan laten tekenen met de door jezelf geprogrammeerde opdrachten
(=procedures), hebben alle telkens dezelfde afmetingen. Een vierkant met zijde 20 vergt een
andere procedure dan een vierkant met zijde 15.
Een parameter is een variabele die je aan een procedure meegeeft, zodat de procedure zelf een
'variabel' karakter krijgt.
Net zoals je FORWARD 20 of FORWARD 15 gebruikt.
Zo kun je ook VIERKANT 20 of VIERKANT 15 gebruiken.
Het veranderen van de grootte van je polygonen met parameters
Gebruik de Editor om de grootte van je driehoek te wijzigen:
ED "DRIEHOEK om een driehoek met een grootte van 267 - FD 267. Probeer een andere
grootte
Om op het zelfde moment driehoeken van verschillend formaat te maken, moet je
DRIEHOEK klonen om DRH - 50 en DRH 267 te maken.
Om op het zelfde moment tien verschillende formaten te maken, heb je tien klonen nodig, dit
is een moeizame manier van werken.
Logo heeft een betere manier, je kunt DRIEHOEK een argument meegeven: een variabele
invoergrootte, bijvoorbeeld. DRIEHOEK 100, DRIEHOEK 250, etc. net als FD 100.
ED "DRIEHOEK en verander de procedure op de volgende manier:
Vertelt de computer een opslagplaats te
maken met de naam GROOTTE en
plaats het getal in deze opslagplaats.
TO DRIEHOEK :GROOTTE
REPEAT 3 [ FD :GROOTTE RT 120 ]
END
Vertelt de schildpad dat hij het aantal
dat in GROOTTE geplaatst is naar
voren moet gaan.
Sla de inhoud van de Editor op en test je bewerkte DRIEHOEK procedure, als je de
boodschap "not enough inputs to DRIEHOEK" krijgt, ben je vergeten de invoerwaarde te
geven, bijvoorbeeld DRIEHOEK 123
Type DRIEHOEK 50 DRIEHOEK 100 DRIEHOEK 150 DRIEHOEK 200 ... etc. in het
Commander Venster ‘Invoervak’ als een single line input.
Nog een voorbeeld: ED “RECHTHOEK
Je ziet nu staan: TO RECHTHOEK
Verander deze hele regel in: TO RECHTHOEK :lengte :breedte
En daarna op de volgende regel verder:
repeat 2 [forward :lengte right 90 forward :breedte right 90]
Geef nu de opdracht RECHTHOEK.
Dat levert een foutmelding op: ‘not enough inputs to rechthoek’
deze opdracht vereist dat er variabelen worden meegegeven, de opdracht kan worden:
RECHTHOEK 100 200
opdacht 3
Probeer nog een aantal goed geformuleerde RECHTHOEK-opdrachten.
Met rechthoek 50 50 kun je een vierkant tekenen.
Maar daar kunnen we ook een afzonderlijke procedure voor maken.
De procedure vierkant bestáát al in de Workspace. Deze gaan we dus veranderen:
to vierkant :zijde
rechthoek :zijde :zijde
end
De opdracht VIERKANT 50 geeft nu hetzelfde resultaat als RECHTHOEK 50 50
Let goed op het gebruik van de parameters in dit voorbeeld:
de opdracht vierkant 50 zorgt dat de parameter zijde in de procedure vierkant de waarde 50
krijgt. Vervolgens roept een regel uit vierkant de procedure rechthoek aan.
In die regel stond rechthoek :zijde :zijde, maar dat is nu eigenlijk rechthoek 50 50 geworden.
En déze twee waarden worden meegegeven aan rechthoek.
Het commando IF
We gaan nu een nestje vierkanten maken. Daarbij wordt gebruik gemaakt van het IFcommando. Je kunt een deel van het programma alleen laten uitvoeren als aan een
voorwaarde voldaan is.
Opdracht 4
Maak de volgende procedure:
TO NESTJE :ZIJDE
*2
IF :ZIJDE > 50 [REPEAT 4 [VIERKANT :ZIJDE RT 90]] [REPEAT 8 [VIERKANT :ZIJDE
RT 45]]
END
Probeer de volgende commando’s uit: nestje 40 en nestje 60.
Leg uit wat het verschil is.
Hoe komt dat
Een huis bouwen
Een goed uitgevoerde Logo techniek is het bouwen van complexere procedures door gebruik
te maken van simpelere procedures. Deze complexere procedures kunnen dan weer gebruikt
voor nog complexere procedures.
Om een huis te maken moet je een DRIEHOEK bouwelement bovenop een VIERKANT
plaatsen waarbij de cement bestaat uit enkele van de primitieve commando’s (FD, BK, RT en
LT).
Opdracht 5
FIGUUR
RECHTH :H :B
...................................
TRAP :B :B/4
;vorm 1
;koppeling
;vorm 2
FIGUUR
RECHTH :H :B
..................................
DRIE45 :H
; vorm 1
; koppeling
; vorm 2
Nu het bouwen van huizen, een ‘stad’ en andere gebouwen
TO HUIS
1: ZIJDE
END
1 : RADIUS
Goede Logo stijl: maak je procedure zo dat deze goed leesbaar en begrijpelijk is.
Maak je HUIS procedure op de volgende manier:
TO HUIS
.................................................; Procedure 1 - de muren
.................................................; koppeling of 'cement' naar dak
.................................................; Procedure 2 -het dak
END
Het huis zal waarschijnlijk voltooid zijn met de schildpad bovenaan bij de muur. Voeg een
andere koppeling na procedure 2 om de schildpad weer terug te brengen naar het begin van
HUIS, precies het startpunt.
Leer de schildpad nu STAD met gebruikmaking van je HUIS procedure. Om te beginnen
moet de schildpad RUIMTE leren kennen. Een procedure waarbij de schildpad van huis naar
huis gaat zonder een lijn te tekenen.
Hiervoor heb je twee nieuwe commando’s nodig:


PU De schildpad tekent niet terwijl hij beweegt
PD pen weer actief.
TO RUIMTE
END
TO STAD
END
Kun je REPEAT gebruikten voor de STAD procedure?
Koppelen van simpele ‘vormen’
Begin met het ontwerpen van een TOREN. Je hebt de RECHTHOEK en DRIEHOEK
procedures. Kloon HUIS en gebruik deze als een model waarbij je dezelfde soort procedures
en koppelingen toepast.
TO TOREN
END
Probeer nu een KERK samen te stellen.
TO KERK
END
Kleuren kiezen
Je kunt de pen-, vul- en schermkleuren kiezen
met behulp van de MSWLogo Menu Balk of
Set>PenColor etc. Kies een van de 'index'-kleuren
die getoond worden of gebruik de Rood | Groen
of Blauw schuifbalken om je eigen kleur te
maken
Vaak zul je kleuren willen bepalen met procedure
commando’s: SETPC pencolor,
SETFC floodcolor, en SETSCREENCOLOR
screencolor.
Om kleuren in te stellen bij procedure
commando’s heb je de kleurwaarden nodig die in
de onderstaande kleurentabel gegeven zijn. Als je
je eigen kleuren gemaakt hebt, type dan SHOW
PENCOLOR, of een ander commando, in het
‘Invoervak’ en sla de kleurwaarden op voor
toekomstig gebruik.
later naar kijken, onduidelijk
Maak een bibliotheek van kleurprocedures als je het lastig vindt om de kleurwaarden die je
gebruikt te onthouden. Maak er een voor elke kleur die je gebruikt
Die voor rood is als volgt:
TO rood
OP 4 ; of OP [255 0 0]
END
Hierdoor kun je later SETPC rood intypen, dit is eenvoudiger dan het je herinneren van de
kleurwaarden
Kleurentabel
Name
Black
Blue
Green
Cyan
Red
Magent
a
Yellow
White
Index
0
1
2
3
4
5
6
7
RGB values
[000]
[ 0 0 255]
[ 0 255 0 ]
[ 0 255 255]
[255 0 0 ]
[255 0 255]
[255 255 0 ]
[255 255 255]
Name
Brown
Light
brown
Mid-green
Blue-green
Salmon
Blue-ish
Orange
Silver
Index
8
9
10
11
12
13
14
15
RGB values
[155 96 59]
[197 136 18]
[100 162 64]
[120 187 187]
[255 149 119]
[144 113 208]
[255 163 0 ]
[183 183 183]
Het tekenen van gekleurde lijnen
Wanneer alle lijnen die je tekent, zwart zijn is er geen reden om de pen op te tillen tussen
vormen die op elkaar aansluiten. Je hebt PU en PD alleen nodig om naar nieuwe locaties te
‘springen’, zonder dat er een lijn getekend wordt.
In het geval elke vorm een andere kleur heeft, moet de pen opgetild worden om te voorkomen
dat eerder getekende lijnen in de andere kleur nogmaals getekend worden.
Wijzig je HUIS procedure en stel de kleur voor iedere vorm opnieuw in. Gebruik PU en PD
aan het begin en eind van elke koppeling, dit kan op de volgende manier:
TO HUIS :GROOTTE
SETPC 6
RHK :GROOTTE
; teken gele muren
PU
FD :GROOTTE RT 30
PD
; koppeling naar dak
SETPC 4
TRI :GROOTTE
; teken rood dak
PU
LT 30 BK :GROOTTE
PD
; koppeling naar grond (R.P.P)
END
Je kunt pencolor ook gebruiken om tekst en tekens te kleuren
Het vullen van een gesloten ruimte met kleur
De volgende basisvolgorde van gebeurtenissen is essentieel:
1.
2.
3.
4.
5.
kies de kleuren,
teken de vorm,
Til de pen op en ga de vorm binnen,
vul met kleur,
ga terug naar de grens van de vorm en zet de pen neer
Als hieronder, iedere lijn wordt apart ingegeven in het Invoervak





SETPC 6 SETFC 6
VIERKANT 80
PU RT 45 FD 20
FILL
BK 20 LT 45 PD
; pen- en vulkleur geel
; teken vorm
; ga binnen de vorm
; vul de vorm met vulkleur
; terug naar rand (omgekeerd pad)
Let er op dat PU in de derde stap noodzakelijk is om het tekenen van een lijn te voorkomen.
In de vijfde stap wordt de pen weer neergezet om het tekenen voort te kunnen zetten.
Maak nu een KLEUR.MUREN procedure van de bovenstaande regels en kloon KLEUR.DAK
van KLEUR.MUREN. Omdat de driehoek scherper is, zul je de 45 hoek moeten
verminderen om binnen de driehoek te kunnen komen.
Vervang daarna de SETPC 6 VIERKANT:GROOTTE and the SETPC 4 DRIEHOEK
:GROOTTE regels in de tweede stap hierboven om een geschilderd huis te krijgen.
Vullen met kleur wanneer vormen elkaar overlappen
FILL kan op twee manieren werken.
Je moet die begrijpen als je probeert een vorm te vullen met een kleur terwijl deze een andere
vorm, gevuld met een andere kleur, overlapt.
FILL, de standaard modus, of (FILL "false) vult tot aan de
grenzen van de vorm.
Afhankelijk van hoever de pen in de laatst getekende vorm
staat, kunnen een van beide resultaten ontstaan.
(FILL "true) zal vullen tot aan de grenzen van de vorm die
net getekend is. (zie rechts), op voorwaarde dat de penkleur
een andere is dan die van de vorm die overlapt wordt.
Er zijn mogelijkheden om bijzondere patronen te maken met gevulde en geroteerde vormen
bij gebruik van combinaties (FILL "true) en (FILL "false).
Met LOGO kun je als het ware bepalen dat je met pen een lijn trekt.
De dikte van de lijn kun je instellen met de opdracht PENSIZE.


Experimenteer met de lijndikte. Gebruik de help-functie voor meer informatie.
Experimenteer ook met de volgende opdrachten:
-
penup
hideturtle
setfloodcolor [R G B]
pendown
showturtle
fill
penerase
setpencolor [R G B]
pennormal
-
setscreencolor [R G B]
Eindopdrachten
Van elke van de onderstaande opdrachten moet je de volgende zaken maken:
1. Een PSD
2. Een Word-bestand met de LOGO-opdrachten (met kopiëren en plakken)
3. Bewaar de afbeelding die je gemaakt hebt als bitmap en neem deze in je Word-verslag op.
Voor HAVO- en VWO-leerlingen:
Opdracht E1
Teken een straat met tien huisjes naast elkaar. De huisjes zijn 3 (cm) breed en hebben een plat
dak.
Opdracht E2
Verander het algoritme zo dat alle huisjes een schuin dak hebben.
Opdracht E3
Verander het algoritme zo dat eerste huisje en plat dak heeft en het tweede een schuin dak.
Het volgende week een plat dak enzovoorts. Je krijgt dan een straat met vijf huisjes met een
plat dak en vijf met een schuin dak.
Alleen voor VWO-leerlingen:
Opdracht E4
Maak een straat met tien huizen van verschillende afmetingen. Zorg er voor dat er
verschillende soorten huizen in de straat staan. Geef de huizen een kleur (denk aan de FILLopdracht):
Extra
Misschien heb je ze al ontdekt, maar via Help  Demos kun je voorbeelden krijgen van de
mogelijkheden van LOGO en kijk ook eens naar de code op deze pagina’s:
http://members.aol.com/mckoss/funprog.htm (torens van Hanoi)
Uitwerkingen bij LOGO-practicum
*1
repeat 7 [forward 5 right 90 forward 5 right –90]
Het resultaat moet er dan zo uitzien:
CS REPEAT 20 [FD 100 RT 170]
Het resultaat moet er dan zo uitzien:
*2
Je moet hier zien dat nestje 40 iets anders oplevert dan nestje 60 en dat er dus een
voorwaardelijke keuze gemaakt wordt afhankelijk van de meegegeven parameter. Het ifcommando heeft een boolean-structuur:
if :zijde > 50 [repeat 4 [vierkant :zijde rt 90]] [repeat 8 [vierkant :zijde rt 45]]
Wordt uitgevoerd als de booleanwaarde 1 (=waar) is.
Wordt uitgevoerd als de booleanwaarde 0 (=onwaar) is.
Eindopdracht havo en vwo gelijk aan die in het boek
19a
Een mogelijke oplossing: edit “platstraat
to platstraat
repeat 10 [rechthoek 40 30 rt 90 fd 30 lt 90]
end
19b
Een puntstraat:
Eerst edit “rechthoek:
to rechthoek :lengte :breedte
repeat 2 [fd :lengte rt 90 fd :breedte rt 90]
fd :lengte
end
Dan edit “driehoek:
to driehoek :zijde
left 90
repeat 3 [right 120 fd :zijde]
end
Dan edit “punthuisje:
to punthuisje
rechthoek 40 30
driehoek 30
end
En tot slot edit “puntstraat:
to puntstraat
repeat 10 [punthuisje fd -30 rt 90 fd -40]
hideturtle
end
19c
5 x een rechthoek en 5 x een punthuisje in bijv. edit “wisselstraat:
to wisselstraat
repeat 5 [rechthoek 40 30 lt 90 fd -30 rt 90 fd –40 punthuisje fd -30 rt 90 fd –40]
hideturtle
end
Eindopdracht vwo
22
De 2e regel wordt wel erg lang, maar het werkt met edit “wisselstraat:
to wisselstraat :lengte :breedte :hoogte
repeat 5 [rechthoek :lengte :breedte lt 90 fd -:breedte rt 90 fd -:lengte punthuisje
:lengte :breedte :hoogte fd -:breedte rt 90 fd -:lengte]
end
Voorbeelden basisvormen en de bijbehorend opdrachten.
Driehoek (3 zijden)
Schildpad draait 120º
REPEAT 3 [FD 100 RT 120]
Vierkant (4 zijden)
Schildpad draait 90º
REPEAT 4 [FD 100 RT 90]
Pentagon (5 zijden)
Schildpad draait 72º
REPEAT 5 [FD 100 RT 72]
Hexagon (6 zijden)
Schildpad draait 60º
REPEAT 6 [FD 100 RT 60]
Septagon (7 zijden)
Schildpad draait 51º
REPEAT 7 [FD 100 RT 51]
Octagon (8 zijden)
Schildpad draait 45º
REPEAT 8 [FD 100 RT 45]
Bronnen
LOGO-opdrachten: Ruud Koortens contact: [email protected]
Michael Koss - http://members.aol.com/mckoss/logo.htm,
MSWLogo - http://www.softronix.com/logo.html
Ton Velzeboer, practicum LOGO,
Informatica Deel 1 Edu’Actief
http://www.ecu.edu.au/pa/ecawa/sig/logo/paul_dench/turtle/turtle-6.html en de manual
die op http://www.ecu.edu.au/pa/ecawa/sig/logo/paul_dench/turtle/tool-box/text/student-manual.doc te
vinden is
Download