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
volgende
Slide 1: Tekstslide
InformaticaMiddelbare schoolhavoLeerjaar 4

In deze les zitten 27 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 40 min

Onderdelen in deze les

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 - Tekstslide

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 - Quizvraag

Opdracht 3.1
Vierkanten in elkaar

Slide 3 - Tekstslide

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 - Tekstslide

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

Slide 5 - Tekstslide

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 - Tekstslide

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

Slide 7 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

Opdracht 3.2
Een deeltaak voor een nest van vierkanten

Slide 12 - Tekstslide

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 - Tekstslide

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

Voor:
Na:

Slide 14 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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

Slide 22 - Open vraag

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

timer
2:00

Slide 23 - Tekstslide

Plusopdracht
Maak een deeltaak om een veelhoek te tekenen.

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

timer
2:00

Slide 24 - Tekstslide

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 - Tekstslide

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 - Tekstslide

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 - Tekstslide