Newest Viewed Downloaded

Vakdidactiek 17 – 11 - 2003 Goethals Frederik frederikgoethals@belgacom.net

Vakdidactiek 17 – 11 - 2003 Goethals Frederik frederikgoethals@belgacom.net

Herhaling basiscommando’s

Turtle basiscommando’s Penopdrachten Kleuropdrachten (RGB waarden) Positioneren van de turtle (assenstelsel) Programmeercommando’s

Toepassing: het tekenen van een huis

Een huis met vaste coördinaten en afmetingen.

Huis met vaste coördinaten en afmetingen

Analyse van het probleem

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

Muren Dak Driehoek Rechthoek Wieken 4 * Wiek Rechthoek Rechte Molen

Stapsgewijze verfijning van het huis

Huis Muur Dak Dak Schoorsteen Rechthoek Trapezium Bakstenen Deur Raam Rechthoek Deur Deurklink Rechthoek Cirkel Rechthoek Voegingen Horizontaal Verticaal Rechten Rechten

Implementatie van de 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, het kiezen van de juiste kleuren, …

Huis

Het huis kan gezien worden als twee kleinere deelproblemen. De muur en het dak. Hoe implementeren? to huis ;scherm wissen cs ;de muur tekenen muur ;het dak tekenen dak end

Huis  muur  bakstenen

Eerst de volledige muur tekenen, daarna de muur voegen. Vervolgens het raam en de deur plaatsen. to muur ;de turtle linksonder zetten pu setxy 0 0 pd ;een rode rechthoek setfc [255 0 0] bitblock 300 150 ;de muren voegen voegen ;het raam tekenen raam ;de deur tekenen deur end

Huis  muur  bakstenen  voegingen

De muur moet gevoegd worden. Eerst horizontaal voegen, daarna verticaal voegen. to voegen ;de muur horizontaal voegen voeg_horizontaal ;de muur verticaal voegen voeg_verticaal end

Huis  muur  bakstenen  voegingen  horizontaal

Horizontaal voegen van de muur, komt neer op het herhaaldelijk tekenen van horizontale lijnen. Hoe moeten we dit implementeren? to voeg_horizontaal ;de rode muur horizontaal voegen ;kleur van de voegen bepalen (grijs) setpc [128 128 128] pu setxy 0 7.5 pd setheading 90 fd 300 pu setxy 0 15 pd setheading 90 fd 300 … pu setxy 0 142.5 pd setheading 90 fd 300 end Geen efficiënte programmering

Huis  muur  bakstenen  voegingen  horizontaal

Hoe kunnen we het voegen efficiënter implementeren? pu setxy 0 7.5 pd setheading 90 fd 300 pu setxy 0 15 pd setheading 90 fd 300 … pu setxy 0 142.5 pd setheading 90 fd 300 Hoeveel keer herhalen? 142.5/7.5 = 19 keer horizontaal voegen. Welke instructies herhalen? pu setxy 0 … pd setheading 90 fd 300 Probleem: niet steeds dezelfde instructie die herhaald moet worden! Oplossing: (cfr. Tellen van 1 tot 10) Make “teller 7.5 Repeat 19 [pu setxy 0 :teller pd setheading 90 fd 300 make “teller (:teller + 7.5) ]  Correct, maar geen elegante manier van oplossen! Introductie van de for-lus! Repeat-instructie: repeat … […]

Huis  muur  bakstenen  voegingen  horizontaal

Vb: uitprinten van de natuurlijke getallen tussen 0 en 10: 0,1,…,10 for [i 0 10 1] [ print :i ] Stap 1: i=0 <= 10  0 uitprinten Stap 2: i=1 <= 10  1 uitprinten … Stap 10: i=10 <=10  10 uitprinten Stap 11: i=11 > 10  stoppen met for-lus uitvoeren For-instructie: for [ variabele startwaarde stopwaarde stapgrootte] […]

Huis  muur  bakstenen  voegingen  horizontaal

pu setxy 0 7.5 pd setheading 90 fd 300 pu setxy 0 15 pd setheading 90 fd 300 … pu setxy 0 142.5 pd setheading 90 fd 300 for [ variabele startwaarde stopwaarde stapgrootte] […] to voeg_horizontaal ;de rode muur horizontaal voegen ;kleur van de voegen bepalen (grijs) setpc [128 128 128] Geen efficiënte programmering pu setxy 0 7.5 pd setheading 90 fd 300 pu setxy 0 15 pd setheading 90 fd 300 … pu setxy 0 142.5 pd setheading 90 fd 300 end

Huis  muur  bakstenen  voegingen  horizontaal

pu setxy 0 7.5 pd setheading 90 fd 300 pu setxy 0 15 pd setheading 90 fd 300 … pu setxy 0 142.5 pd setheading 90 fd 300 for [ variabele startwaarde stopwaarde stapgrootte] […] to voeg_horizontaal ;de rode muur horizontaal voegen ;kleur van de voegen bepalen (grijs) setpc [128 128 128] for [ i 7.5 142.5 7.5 ] [ pu setxy 0 :i pd setheading 90 fd 300 ] end

Huis  muur  bakstenen  voegingen  verticaal

Verticaal voegen van de muur, komt neer op het herhaaldelijk tekenen van verticale lijnen. Hoe moeten we dit implementeren? to voeg_verticaal ;de rode muur verticaal voegen ;kleur van de voegen bepalen (grijs) setpc [128 128 128] for [i 20 280 20] [pu setxy :i 0 pd setheading 0 fd 150] end

Huis  muur  deur  deur

De deur zelf wordt voorgesteld als een groene rechthoek. Hoe moeten we dit implementeren? to deur ;de turtle in goede positie zetten pu setxy 210 0 pd ;een groene rechthoek tekenen en opvullen setfc [0 255 0] bitblock 60 120 ;de deurklink tekenen deurklink end

Huis  muur  deur  deurklink

De deurklink wordt getekend als een zwarte cirkel. Hoe moeten we dit implementeren? Eigenschappen van cirkel? to deurklink ;de turtle in goede positie zetten (middelpunt van cirkel) pu setxy 255 60 pd ;kleur van de deurknop bepalen (zwart) setpc [0 0 0] setfc [0 0 0] ;een cirkel tekenen en opvullen circle 7 fill end

Huis  muur  Raam

Het Raam is een blauwe rechthoek. Hoe moeten we dit implementeren? to raam ;de turtle in goede positie zetten pu setxy 60 45 pd ;kleur van het raam bepalen (blauw) setfc [0 0 255] ;een rechthoek tekenen en opvullen bitblock 90 60 end

Showing 1 - 20 of 35 items Details

Name: 
Les4FGoethals
Author: 
Goethals
Company: 
N/A
Description: 
Vakdidactiek 17 – 11 - 2003 Goethals Frederik frederikgoethals@belgacom.net
Tags: 
van | huis | muur | het | tekenen | dak | setxy | 300
Created: 
11/15/2003 10:42:08 AM
Slides: 
35
Views: 
0
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap