Funksjoner: gjenbrukbare algoritmer

En funksjon er en algoritme du gir et navn, slik at du kan bruke den igjen og igjen uten å skrive den på nytt. I stedet for å skrive «gjenta 4 ganger: gå fram 5, snu 90°» hver gang du vil tegne et kvadrat, definerer du funksjonen tegnKvadrat() én gang og «kaller» den hver gang du trenger et nytt kvadrat.

Definere og kalle en funksjon
StegHva som skjer
Definer tegnKvadrat()Lagrer algoritmen med et navn – tegner ingenting ennå
Kall tegnKvadrat()Kjører hele algoritmen – tegner ett kvadrat
Kall tegnKvadrat() igjenKjører algoritmen på nytt – tegner et kvadrat til

Tips

  • Gi funksjonene navn som forteller hva de gjør (tegnKvadrat, ikke funksjon1) – det gjør det lettere å huske hva som skjer når du kaller den senere.

Eksempel: To kvadrater med samme funksjon

Funksjonen tegnKvadrat() tegner ett kvadrat med 4 sider à 5 enheter. Roboten kaller tegnKvadrat() 3 ganger. Hvor mange sider har roboten tegnet til sammen?

Antall sider per kalling
KallingSider tegnet
14
28
312
Løsning:
  1. Hver funksjonskalling tegner 4 sider
  2. 3 kallinger
  3. 3 * 4 = 12 sider til sammen.

Oppgaver

Prøv minst én oppgave på hvert nivå.

Lett(3)

L-21Funksjonen tegnTrekant() tegner en trekant med 3 sider. Roboten kaller den 2 ganger. Hvor mange sider har roboten tegnet til sammen?

Vis fasit
BeregningResultat
3 * 26
  1. 3 sider per kalling, 2 kallinger
  2. 3 * 2 = 6 sider

L-22Funksjonen tegnKvadrat() bruker 4 «gå fram»-kommandoer per kalling. Roboten kaller den 5 ganger. Hvor mange «gå fram»-kommandoer kjøres til sammen?

Vis fasit
BeregningResultat
4 * 520
  1. 4 kommandoer per kalling, 5 kallinger
  2. 4 * 5 = 20 kommandoer

L-23En funksjon tegnLinje() tegner én linje på 6 enheter. Roboten kaller den 4 ganger for å tegne en stjerneform. Hvor mange enheter har roboten gått til sammen?

Vis fasit
BeregningResultat
6 * 424
  1. 6 enheter per kalling, 4 kallinger
  2. 6 * 4 = 24 enheter
Middels(3)

M-21Funksjonen tegnSekskant() tegner en sekskant med 6 sider à 3 enheter. Roboten kaller den 3 ganger. Hvor mange enheter har roboten gått til sammen?

Vis fasit
BeregningResultat
6 * 3 (per kalling)18
18 * 354
  1. 6 sider à 3 enheter = 18 enheter per kalling
  2. 3 kallinger
  3. 18 * 3 = 54 enheter

M-22En robot bruker funksjonen tegnKvadrat() (4 sider à 4 enheter) til å tegne 6 kvadrater ved siden av hverandre, pluss én ekstra linje på 10 enheter mellom hvert kvadrat (5 slike mellomrom). Hvor mange enheter går roboten totalt?

Vis fasit
BeregningResultat
Kvadrater (6*16)96
Mellomrom (5*10)50
Totalt146
  1. 6 kvadrater à 16 enheter (4*4) = 96 enheter
  2. 5 mellomrom à 10 enheter = 50 enheter
  3. 96 + 50 = 146 enheter

M-23Funksjonen tegnTrekant() kalles 8 ganger, og hver trekant har sider på 5 enheter (3 sider). Hvor mange enheter går roboten totalt?

Vis fasit
BeregningResultat
15 (per kalling)-
15 * 8120
  1. 3 sider à 5 enheter = 15 enheter per kalling
  2. 8 kallinger
  3. 15 * 8 = 120 enheter
Vanskelig(3)

V-21En funksjon tegnHus() tegner et kvadrat (4 sider à 4 enheter) med en trekant (3 sider à 4 enheter) oppå som tak. Hvor mange enheter går roboten for ÉN kalling av tegnHus()? Roboten kaller funksjonen 5 ganger for å tegne en rekke med hus – hvor mange enheter totalt?

Vis fasit
BeregningResultat
Kvadrat (4*4)16
Trekant (3*4)12
Per hus28
5 hus (28*5)140
  1. Kvadrat: 4 * 4 = 16
  2. trekant: 3 * 4 = 12
  3. per hus: 16 + 12 = 28
  4. 5 kallinger: 28 * 5 = 28 per hus, 140 totalt

V-22En robot har to funksjoner: tegnKvadrat() (16 enheter per kalling) og tegnTrekant() (12 enheter per kalling). Den kaller tegnKvadrat() 3 ganger og tegnTrekant() 4 ganger. Hvor mange enheter går roboten totalt?

Vis fasit
BeregningResultat
Kvadrater (16*3)48
Trekanter (12*4)48
Totalt96
  1. Kvadrater: 16 * 3 = 48
  2. trekanter: 12 * 4 = 48
  3. totalt: 48 + 48 = 96 enheter

V-23En funksjon tegnMonster() bruker 20 enheter per kalling. Roboten skal gå nøyaktig 140 enheter ved å kalle funksjonen flest mulig hele ganger, og resten som én ekstra linje. Hvor mange ganger kaller den funksjonen, og hvor lang blir ekstralinjen?

Vis fasit
BeregningResultat
140 : 207 kallinger, 0 ekstra
  1. 140 : 20 = 7
  2. 7 kallinger gir nøyaktig 140 enheter
  3. ingen ekstralinje trengs
  4. 7 ganger, 0 enheter ekstra