Complexe tekeningen maken m.b.v. deeltaken met parameters en variabelen

Leerdoelen
  • Ik ken de 2 programmeer-technieken "Decompositie" en "Stapsgewijs verfijnen"  en kan uitleggen wat ze betekenen.
  • Ik kan de computer een complexe tekening laten tekenen door gebruik te maken van deeltaken met parameters en variabelen.



                                     je weet welke vergelijkingsoperatoren er zijn
                                                    
                
                                     met vergelijkingsoperatoren
                           
1 / 27
next
Slide 1: Slide
InformaticaMiddelbare schoolhavoLeerjaar 4

This lesson contains 27 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 40 min

Items in this lesson

Leerdoelen
  • Ik ken de 2 programmeer-technieken "Decompositie" en "Stapsgewijs verfijnen"  en kan uitleggen wat ze betekenen.
  • Ik kan de computer een complexe tekening laten tekenen door gebruik te maken van deeltaken met parameters en variabelen.



                                     je weet welke vergelijkingsoperatoren er zijn
                                                    
                
                                     met vergelijkingsoperatoren
                           

Slide 1 - Slide

Heb je deze opdrachten al gemaakt?
3.1 "Vierkanten in elkaar"
3.2 "Nest van vierkanten"
A
Ja, allebei
B
Nee, alleen 3.1
C
Nee, alleen 3.2
D
Nee, geen van beide

Slide 2 - Quiz

Opdracht 3.1
Vierkanten in elkaar

Slide 3 - Slide

Programmeer-techniek
  1. Maak eerst programma met alleen constanten
  2. Verfijn het programma door constanten te vervangen door variabelen
  3. Verfijn het programma door dubbele code te vervangen door herhalingen
  4. Verfijn het programma door code in deeltaken te plaatsen
Stapsgewijs verfijnen: een programma in stapjes opbouwen

Slide 4 - Slide

roep deeltaak vierkant aan met verschillende groottes:
100, 80, 60
{leeg}
vierkant(100)
vierkant(80)
vierkant(60)
Voor:
Na:

Slide 5 - Slide

Programmeer-techniek
  1. Maak eerst programma met alleen constanten
  2. Verfijn het programma door constanten te vervangen door variabelen
  3. Verfijn het programma door dubbele code te vervangen door herhalingen
  4. Verfijn het programma door code in deeltaken te plaatsen
Stapsgewijs verfijnen

Slide 6 - Slide

Vervang constante 100 door variabele grootte.
vierkant(100)
vierkant(80)
vierkant(60)
grootte = 100
vierkant(grootte)
vierkant(80)
vierkant(60)
Voor:
Na:

Slide 7 - Slide

Vervang constante 80 door variabele grootte.
vierkant(100)
vierkant(80)
vierkant(60)
grootte = 100
vierkant(grootte)
grootte = grootte - 20
vierkant(grootte)
vierkant(60)
Voor:
Na:

Slide 8 - Slide

Vervang constante 60 door variabele grootte
vierkant(100)
vierkant(80)
vierkant(60)
grootte = 100
vierkant(grootte)
grootte = grootte - 20
vierkant(grootte)
grootte = grootte - 20
vierkant(grootte)
Voor:
Na:

Slide 9 - Slide

Programmeer-techniek
  1. Maak eerst programma met alleen constanten
  2. Verfijn het programma door constanten te vervangen door variabelen
  3. Verfijn het programma door dubbele code te vervangen door herhalingen
  4. Verfijn het programma door code in deeltaken te plaatsen
Stapsgewijs verfijnen

Slide 10 - Slide

vervang dubbele code door een herhaling
eerst 1 keer herhalen, daarna meer keer
grootte = 100
vierkant(grootte)
grootte = grootte - 20

vierkant(grootte)
grootte = grootte - 20

vierkant(grootte)
grootte = 100
Herhaal 3 keer
{
    vierkant(grootte)
    grootte = grootte - 20
}

Voor:
Na:

Slide 11 - Slide

Opdracht 3.2
Een deeltaak voor een nest van vierkanten

Slide 12 - Slide

Programmeer-techniek
Hoe zou je dit probleem van het tekenen van 3 nesten van vierkanten opdelen in een kleiner probleem?


Decompositie:
een groot probleem opdelen in kleinere problemen
Teken 1 nest
1
Teken vierkant
Teken kleiner vierkant
2

Slide 13 - Slide

maak een deeltaak nest en
roep deeltaak vierkant aan met 2 groottes: 100, 80
{leeg}
vierkant(100)
vierkant(80)

Voor:
Na:

Slide 14 - Slide

zorg dat het tweede vierkant
netjes in het midden van het eerste vierkant staat
vierkant(100)
vierkant(80)
vierkant(100)
stap(10, 10)
vierkant(80)

Voor:
Na:

Slide 15 - Slide

zet de pen uit voordat je de stap doet
zet de pen weer aan nadat je de stap hebt gedaan
vierkant(100)
stap(10, 10)
vierkant(80)
vierkant(100)
penUit()
stap(10, 10)
penAan()
vierkant(80)

Voor:
Na:

Slide 16 - Slide

Programmeer-techniek
  1. Maak eerst programma met alleen constanten
  2. Verfijn het programma door constanten te vervangen door variabelen
  3. Verfijn het programma door dubbele code te vervangen door herhalingen
  4. Verfijn het programma door code in deeltaken te plaatsen
Stapsgewijs verfijnen

Slide 17 - Slide

plaats 3 aanroepen in 1 nieuwe deeltaak met een goede naam
en roep de deeltaak aan met dezelfde argumenten
vierkant( 100 )
penUit( )
stap( 10, 10 )
penAan(  )

vierkant( 80 )
vierkant( 100 )
onzichtbareStap( 10, 10 )
vierkant( 80 )
Voor:
Na:

Slide 18 - Slide

teken nog een vierkant
vierkant( 100 )
onzichtbareStap( 10, 10 )
vierkant( 80 )
vierkant( 100 )
onzichtbareStap( 10, 10 )
vierkant( 80 )
onzichtbareStap( 10, 10 )
vierkant( 60 )
Voor:
Na:

Slide 19 - Slide

vervang constanten door variabelen
vervang dubbele code door herhalingen
plaats code in deeltaken
vierkant( 100 )
onzichtbareStap( 10, 10 )
vierkant( 80 )
onzichtbareStap( 10, 10 )
vierkant( 60 )
Deeltaak: nest( grootte, aantal )
krimp = grootte / aantal
Herhaal aantal keer
{
   vierkant( grootte )
   onzichtbareStap( krimp / 2, krimp / 2 )
   grootte = grootte - krimp
}
stappenGezet = aantal * krimp / 2
onzichtbareStap( -stappenGezet, -stappenGezet )
Voor:
Na:

Slide 20 - Slide

Leerdoelen
  • Ik ken de 2 programmeer-technieken "Decompositie" en "Stapsgewijs verfijnen"  en kan uitleggen wat ze betekenen.
  • Ik kan de computer een complexe tekening laten tekenen door gebruik te maken van deeltaken met parameters en variabelen.



                                     je weet welke vergelijkingsoperatoren er zijn
                                                    
                
                                     met vergelijkingsoperatoren
                           

Slide 21 - Slide

Benoem de twee programmeer-technieken die in deze les zijn gebruikt en beschrijf ze in je eigen woorden.

Slide 22 - Open question

Plusopdracht
Maak een deeltaak om een veelhoek te tekenen.
Roep de deeltaak aan om de volgende tekening te maken.

timer
2:00

Slide 23 - Slide

Plusopdracht
Maak een deeltaak om een veelhoek te tekenen.

Hint: vervang de constanten in de deeltaak "vierkant" door parameters.

timer
2:00

Slide 24 - Slide

Plusopdracht
Maak een deeltaak om een veelhoek te tekenen.

Hint: vervang de constanten in de deeltaak "vierkant" door parameters.
Gebruik een parameter om het aantal hoeken in te stellen
Gebruik een parameter om de grootte in te stellen
Gebruik een parameter om de draaihoek in te stellen

timer
2:00

Slide 25 - Slide

Plusopdracht
Maak een deeltaak om een veelhoek te tekenen.


Hint: vervang de draaihoek parameter met een variabele in de deeltaak en bereken de draaihoek op basis van het aantal hoeken.
timer
2:00

Slide 26 - Slide

Plusopdracht
onzichtbareStap( -340, 0 )
veelhoek( 3, 100 )
onzichtbareStap( 100, 0 )
veelhoek( 4, 100 )
onzichtbareStap( 110, 0 )
veelhoek( 5, 100 )
onzichtbareStap( 160, 0 )
veelhoek( 6, 100 )
onzichtbareStap( 180, 0 )
veelhoek( 7, 100 )
Deeltaak: veelhoek( aantalhoeken, grootte )
draaihoek = 360 / aantalhoeken
Herhaal aantalhoeken keer
{
    vooruit( grootte )
    rechts( draaihoek )
}
Deeltaak: onzichtbareStap( x, y )
penUit( )
stap( x, y )
penAan(  )

Slide 27 - Slide