Doel van deze les: tekenen van een huis met vaste coordinaten en afmetingen
De top-down methode
Doel: via een stapsgewijze verfijning het oorspronkelijke probleem opdelen in kleinere deelproblemen.
De deelproblemen verder opdelen totdat de problemen herleid zijn tot basiscommando’s of reeds geziene procedures.
Vb: molen van vorige les
Stapsgewijze verfijning van de molen
Stapsgewijze verfijning van de molen
Stapsgewijze verfijning van het huis
Stapsgewijze verfijning van het huis
Implementatie deelproblemen
Doel: elk eenvoudig deelprobleem apart implementeren (aparte procedures) om zo de implementatie van de complexe toepassing te bekomen.
Elke procedure moet zo onafhankelijk mogelijk kunnen werken van de andere.
Vb: procedure “dak” is zelf verantwoordelijk voor het correct verplaatsen van de turtle
Herhaling basiscommando’s
Turtle basiscommando’s:
FD – BK – LT – RT – CS – ST - HT
Penopdrachten
PU – PD
Kleuropdrachten (RGB waarden)
SETPC – SETSC – SETFC (FILL)
Programmeercommando’s
repeat num [...] – make “VAR value
Positionering van de turtle
TO POSITIE :XPOS :YPOS
PU
SETXY :XPOS :YPOS
PD
END
SETXY XPOS YPOS
Maak een procedure “positie voor
de positionering van de turtle.
Procedure muur:
to muur
positie 0 0 (de turtle linksonder zetten)
repeat 2 [ fd 150 rt 90 fd 200 rt 90 ]
raam ( het raam tekenen)
deur (de deur tekenen)
end
De muur wordt voorgesteld
als een rechthoek
Hoe implementeren?
Procedure deur:
De deur zelf wordt voorgesteld als een rechthoek.
Hoe implementeren? to deur :lengte
positie 130 0
repeat 2 [ fd 80 rt 90 fd 50 rt 90 ]
deurklink (de deurklink tekenen)
end
Procedure deurklink
De deurklink wordt getekend als een cirkel.
Hoe implementeren?
Commando om een cirkel te tekenen is circle x to deurklink
positie 170 40 (middelpunt van cirkel)
circle 6 (een cirkel tekenen)
end
Procedure raam:
Het Raam is een rechthoek.
Hoe implementeren? to raam
positie 30 40
repeat 2 [ fd 40 rt 90 fd 70 rt 90 ]
end
Procedure dak:
Het Dak is een driehoek.
Hoe implementeren?
TO DAK
positie 0 150
rt 45 fd sqrt(20000) rt 90 fd sqrt(20000)
rt 135 fd 200
END
Probleem: Hoelang zijn de rechthoekzijden?
Oplossing: Stelling van Pythagoras
RZ 2 + RZ 2 = SZ 2 -> RZ = sqrt ((SZ * SZ)/2)
= sqrt ((200 * 200)/2)
Testen van de toepassing
We hebben de complexe toepassing stapsgewijs verfijnd en geïmplementeerd met behulp van verschillende procedures.
To huis
dak
muur
End
Samenvatting:
Groot probleem opsplitsen in deelproblemen.
Top down of stapsgewijze vereenvoudiging maakt probleem veel eenvoudiger!
Oefening:Stapsgewijze verfijning van een boot
1. Geef de topdown-strategie van dit probleem
2. Implementeer de deelprocedures
Stapsgewijze verfijning van de boot
Taak: tekenen van een kerk
Geef de top-down strategie van dit probleem
Implementeer de verschilllende deelprocedures
Comments