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

Slides:



Advertisements
Verwante presentaties
Tekenen van Grondplan Tekenen van muren.
Advertisements

Bij een herhaald experiment, met telkens dezelfde kans op succes gebruiken we de binomiale kansverdeling Een binomiale kansverdeling wordt gekenmerkt door.
Programmeren met Alice
Hoofdstuk 8 Regels Ontdekken Sebnem YAPAR.
Recursie: De torens van Hanoi
Hoofdstuk 8: Recursie.
Informatica: Algoritmen
Kb.1 Ik leer op een goede manier optellen en aftrekken
automatiseringselektronica
Tel de zwarte stippen!. Tel de zwarte stippen!
Wat zie je precies ???.
Hoofdstuk 6: Controle structuren
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
De grafiek van een lineair verband is ALTIJD een rechte lijn.
Assenstelsels en het plotten van Functies in LOGO
Recursie: De Torens van Hanoi
Tekenen van een draaiende molen in LOGO
Logo : Stapsgewijze verfijning Les Wouter Rogiers.
MSWLogo Kite (verder afwerken) If – functie Recursie Een gokspel.
LOGO Recursie - Vlieger 6/12/2004 Dieter Verslype.
Probeer te begrijpen wat de Midzomernacht zon betekent
Frank Stalpers en Ad Baars
2 De kaart 2.1 Van luchtfoto naar kaart 2.2 Kaart en schaal
Werken aan Intergenerationele Samenwerking en Expertise.
ribwis1 Toegepaste wiskunde – Exponentiele functies Lesweek 6
Tweedegraadsfuncties
Hoofdstuk 4 Vlakke figuren.
Titreren 4GT Nask2 Hoofdstuk 6.6.
Logo Stapsgewijze verfijning: tekenen van een huis. Uitbreiding naar meerdere huizen, variabele afmetingen, coördinaten en kleuren Opdracht voor het vak.
Vakdidactiek Informatica bij vragen: het gebruikte materiaal: Tijl De Backer.
Pen- & kleuropdrachten
Haiku-Generator Les 1 – 12/02/2003 Jan De Bock.
Inleiding tot recursie1 door Maarten Lemmens. Inleiding tot recursie2 Wat is recursie ?  Een procedure die zichzelf oproept.  Vb. in echte leven: Radio.
, 17h30Recursie 1 Inleiding tot recursie Karel Popelier.
LES 2 Lesgever: Henk Norman. De molen B) Laat de wieken draaien A) Teken een molen.
Vakdidactiek 9/12/2002 Leen Depré
Liesbeth Van Raemdonck
24/11/2003LOGO - recursie - vliegers1 Recursie: Vliegers in vliegers Dieter Beheydt 24/11/2003.
A H M F K EB C x 88. Korte zijde bij A en C changement met gebroken lijnen (opsluiten!) Daarna rijden.
Les 11: SVG.
Bewerkingen met pijltjes = Hoeveel heb ik eerst ? kleef 3 vast ____ Wat moet ik doen ? pijltjes ? 2de getal= 2 cijfers? = = 17.
Kevin van Dorssen 3 april 2008Hfst 8 L1K Formules en letters.
Presentatie vergelijkingen oplossen.
Hoofdstuk 1 Roosterpapier, hoekpunten, zijden, diagonalen
Bewerkingen met breuken Les 37.
6,50 euro In dit vakje zie je hoeveel je moet betalen.
havo B Samenvatting Hoofdstuk 1
De financiële functie: Integrale bedrijfsanalyse©
Tellen van Stemmen … FEB, Studiedag Leraren Wiskunde, 6 mei 2010 Luc Lauwers.
Sketchup 2014 Les 10.
Les 4 De Muis (deel 1) Programmeren met Visual Basic Karl Moens.
Lessen Wim Beks PP 2003 Les 24 Vlechtwerk Wim Beks.
Cursus sketchup 2014 Een bol maken (les 6).
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
LOGO Vincent Naessens
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
Steve Dewanckele Recursie Steve Dewanckele
Assenstelsel tekenen.
hoe kun je krachten grafisch ontbinden?
Mol en beer.
TEKENEN RASTER voor opdracht PORTRET
Kennismaking met programmeren
Small Basic Console deel 2
Kan je zelf een geschikte schaalverdeling maken
Tel de zwarte stippen!. Tel de zwarte stippen!
3 vmbo-KGT Samenvatting Hoofdstuk 10
Tel de zwarte stippen!. Tel de zwarte stippen!
Leren programmeren met Scratch
De natuurlijke getallen op een getallenas en in een assenstelsel
Welkom bij onze workshop!
Transcript van de presentatie:

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 Rechthoek Dak Driehoek Wieken 4 * Wiek Rechthoek Rechte

Stapsgewijze verfijning van het huis Muur Bakstenen Rechthoek Voegingen Horizontaal Rechten Verticaal Rechten Deur Deur Rechthoek Deurklink Cirkel Raam Rechthoek Dak Dak Trapezium Schoorsteen Rechthoek

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 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 Eerst de volledige muur tekenen, daarna de muur voegen. Vervolgens het raam en de deur plaatsen.

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

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 Repeat-instructie: repeat … […] 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!

Huis  muur  bakstenen  voegingen  horizontaal For-instructie: for [ variabele startwaarde stopwaarde stapgrootte] […] 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

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] 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 Geen efficiënte programmering 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

Huis  dak  dak Het Dak is een zwarte trapezium. Hoe moeten we dit implementeren? Eerst tekenen, dan opvullen. Grote basis, rechterwand (50°), kleine basis, linkerwand (50°). grote basis tekenen  pu setxy 0 150 pd heading 90 fd 300 rechterwand tekenen  lt (180 - 50) fd 120 lt 50 kleine basis tekenen  fd … linkerwand tekenen  setxy 0 150 Probleem: Hoelang is de kleine basis?

Huis  dak  dak De lengte van de kleine basis? Oplossing: opslaan van de posities (x1,y1) en (x2,y2) make “pos1 pos make “pos2 pos de waarde 300 – 2 * (x1 – x2) berekenen. 300 – 2 * ( (item 1 :pos1) – (item 1 :pos2) )

Huis  dak  dak to dak ;de turtle in goede positie brengen pu setxy 0 150 setheading 90 pd ;kleur van dak bepalen (zwart) setpc [0 0 0] setfc [0 0 0] ;basis tekenen fd 300 ;huidige positie bewaren make "pos1 pos ;rechterdakwand tekenen lt 180 - 50 fd 120 lt 50 make "pos2 pos ;tekenen van schoorsteen schoorsteen ;kleine basis fd 300 - 2*((item 1 :pos1) - (item 1 :pos2)) ;linkerdakwand tekenen setxy 0 150 ;opvullen van dak (net in dak staan) pu setxy 150 151 pd fill end

Huis  dak  schoorsteen De schoorsteen is een zwarte rechthoek. De schoorsteen wordt getekend als de turtle op positie (x2,y2) staat (zie vroeger) Hoe moeten we dit implementeren? to schoorsteen ;kleur van dak bepalen (zwart) setfc [0 0 0] ;zwarte rechthoek tekenen bitblock 30 45 end Maar! Schoorsteen staat verkeerd ! Bitblock start altijd RECHTS van de turtle!

Huis  dak  schoorsteen to schoorsteen ;turtle linksonder schoorsteen zetten pu setheading -90 fd 30 pd ;zwarte rechthoek tekenen setfc [0 0 0] bitblock 30 45 ;turtle terugzetten bk 30 end Trucje: De turtle dus eerst enkele posities naar links verplaatsen. Dan de bitblock tekenen. De turtle terug naar rechts verplaatsen.

Testen van de toepassing We hebben de complexe toepassing stapsgewijs verfijnd en geïmplementeerd met behulp van verschillende procedures. De startprocedure was To huis …. End Als alles correct is verlopen zou het uitvoeren van het commando huis in de commander van MSWLOGO het volledige huis moeten tekenen.

Huis met vaste coördinaten en afmetingen

Uitbreiding 1: één of meer huizen met variabele afmetingen en coördinaten Opgave: Pas de code van vorige opgave aan zodat het mogelijk wordt om een huis met variabele afmetingen en coördinaten te tekenen. Alle afmetingen van het huis worden in functie van de breedte berekend (zie kopie) Sla misschien best de vorige opgave op in het bestand vasthuis.lgo Kopieer, plak en hernoem het bestand tot variabelhuis.lgo Pas dan het bestand variabelhuis.lgo aan, zodat het originele bestand niet wordt veranderd. Commando-opdracht: huis x-co y-co breedte Vb: huis 0 0 300 Vb: huis -200 20 180 Vb: huis -350 40 120

Huis met variabele coördinaten en afmetingen

Meerdere variabele huizen

Werkwijze voor aanpassen van de code Welke zaken moeten veranderd worden? Gebruik van parameters Welke parameters doorgeven aan welke functies? X-co, Y-co, breedte Welke individuele commando’s moeten gebruik maken van de parameters? Voorbeeld: de functie huis wordt nu… to huis :x :y :breedte ;x=x-coordinaat van referentiepunt van huis (links onder) ;y=y-coordinaat van referentiepunt van huis (links onder) ;breedte=de breedte van het huis ;tekenen van muur: muur :x :y :breedte ;tekenen van dak dak :x :y :breedte end

Uitbreiding 2: één of meer huizen met variabele afmetingen, coördinaten en kleuren Opgave: Pas de code van vorige opgave aan zodat het nu ook mogelijk wordt huizen met variabele kleuren te tekenen. Sla misschien best de vorige opgave op in het bestand variabelhuis.lgo Kopieer, plak en hernoem het bestand tot allesvariabelhuis.lgo Pas dan het bestand allesvariabelhuis.lgo aan, zodat het origineel niet wordt veranderd. Commando-opdracht: huis x-co y-co breedte [r_muur g_muur b_muur] [r_voeg g_voeg b_voeg] [r_deur g_deur b_deur] [r_klink g_klink b_klink] [r_venster g_venster b_venster] [r_dak g_dak b_dak] [r_schoorsteen g_schoorsteen b_schoorsteen] Vb: huis 0 0 300 [255 0 0] [128 128 128] [0 255 0] [0 0 0] [0 0 255] [0 0 0] [0 0 0] Vb: huis -50 -100 300 [192 192 192] [0 0 0] [134 7 149] [255 255 255] [0 144 244] [195 3 26] [4 3 2]

Huis met variabele afmetingen, coördinaten en kleuren

Werkwijze voor aanpassen van de code Welke zaken moeten nu veranderd worden? Gebruik van parameters Welke parameters doorgeven aan welke functies? X-co, Y-co, breedte, kleuren als 1 parameter [… … … ] Welke individuele commando’s moeten gebruik maken van de parameters? Voorbeeld: de functie huis wordt nu… to huis :x :y :breedte :rgb_muur :rgb_voeg :rgb_deur :rgb_klink :rgb_venster :rgb_dak :rgb_schoorsteen ;x=x-coordinaat van referentiepunt van huis (links onder) ;y=y-coordinaat van referentiepunt van huis (links onder) ;breedte=de breedte van het huis;tekenen van muur: muur :x :y :breedte :rgb_muur :rgb_voeg :rgb_deur :rgb_klink :rgb_venster ;tekenen van dak dak :x :y :breedte :rgb_dak :rgb_schoorsteen end

Wat is de conclusie van de toepassingen? Niet zozeer dat we kunnen huizen tekenen Wel… Het belang van de stapsgewijze verfijning (top down strategie). Het omzetten van complexe problemen tot eenvoudigere deelproblemen. Een goede analyse en bijhorende implementatie stelt ons in staat om makkelijk de toepassing uit te breiden en/of aan te passen.