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.
| Steg | Hva som skjer |
|---|---|
| Definer tegnKvadrat() | Lagrer algoritmen med et navn – tegner ingenting ennå |
| Kall tegnKvadrat() | Kjører hele algoritmen – tegner ett kvadrat |
| Kall tegnKvadrat() igjen | Kjø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?
| Kalling | Sider tegnet |
|---|---|
| 1 | 4 |
| 2 | 8 |
| 3 | 12 |
- Hver funksjonskalling tegner 4 sider
- 3 kallinger
- 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
| Beregning | Resultat |
|---|---|
| 3 * 2 | 6 |
- 3 sider per kalling, 2 kallinger
- 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
| Beregning | Resultat |
|---|---|
| 4 * 5 | 20 |
- 4 kommandoer per kalling, 5 kallinger
- 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
| Beregning | Resultat |
|---|---|
| 6 * 4 | 24 |
- 6 enheter per kalling, 4 kallinger
- 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
| Beregning | Resultat |
|---|---|
| 6 * 3 (per kalling) | 18 |
| 18 * 3 | 54 |
- 6 sider à 3 enheter = 18 enheter per kalling
- 3 kallinger
- 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
| Beregning | Resultat |
|---|---|
| Kvadrater (6*16) | 96 |
| Mellomrom (5*10) | 50 |
| Totalt | 146 |
- 6 kvadrater à 16 enheter (4*4) = 96 enheter
- 5 mellomrom à 10 enheter = 50 enheter
- 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
| Beregning | Resultat |
|---|---|
| 15 (per kalling) | - |
| 15 * 8 | 120 |
- 3 sider à 5 enheter = 15 enheter per kalling
- 8 kallinger
- 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
| Beregning | Resultat |
|---|---|
| Kvadrat (4*4) | 16 |
| Trekant (3*4) | 12 |
| Per hus | 28 |
| 5 hus (28*5) | 140 |
- Kvadrat: 4 * 4 = 16
- trekant: 3 * 4 = 12
- per hus: 16 + 12 = 28
- 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
| Beregning | Resultat |
|---|---|
| Kvadrater (16*3) | 48 |
| Trekanter (12*4) | 48 |
| Totalt | 96 |
- Kvadrater: 16 * 3 = 48
- trekanter: 12 * 4 = 48
- 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
| Beregning | Resultat |
|---|---|
| 140 : 20 | 7 kallinger, 0 ekstra |
- 140 : 20 = 7
- 7 kallinger gir nøyaktig 140 enheter
- ingen ekstralinje trengs
- 7 ganger, 0 enheter ekstra