Flytskjema og pseudokode for sum av partall
Lov på eksamen
- Datamaskin med programmeringsverktøy
- Lærebok, dokumentasjon og egne notater og programmer
Ikke åpent internett (bare noen utvalgte nettressurser), kommunikasjon med andre eller kunstig intelligens.
Kan den løses uten PC?
Alle deloppgavene kan løses uten PC.
Fra 2027 er det bare kalkulator og skriftlige hjelpemidler på del 2. Vurderingen er gjort med KI og kan inneholde feil.
Nedenfor ser du et flytskjema som beskriver en algoritme, og tre sekvenser med pseudokode.
Du skal svare på begge oppgavene.
Flytskjema

Pseudokode 1
SET sum TO 0
READ tall
IF tall LESSER THAN 1
DISPLAY "Ugyldig"
ELSE
SET n TO 2
WHILE n LESSER THAN OR EQUAL TO tall
SET sum TO sum + n
INCREMENT n BY 2
ENDWHILE
DISPLAY sum
ENDIF
Pseudokode 2
SET sum TO 0
READ tall
IF tall LESSER THAN 1
DISPLAY "Ugyldig"
ELSE
SET n TO 1
WHILE n LESSER THAN OR EQUAL TO tall
IF n % 2 NOT EQUAL TO 0
SET sum TO sum + n
ENDIF
INCREMENT n
ENDWHILE
DISPLAY sum
ENDIF
Pseudokode 3
SET sum TO 0
READ tall
IF tall LESSER THAN 1
DISPLAY "Ugyldig"
ELSE
SET n TO 1
WHILE n LESSER THAN OR EQUAL TO tall
IF n % 2 EQUAL TO 0
SET sum TO sum + n
ENDIF
INCREMENT n
ENDWHILE
DISPLAY sum
ENDIF
Hvilken sekvens med pseudokode beskriver den samme algoritmen som flytskjemaet?
Forklar med egne ord hva algoritmen gjør, basert på flytskjemaet ovenfor.
Fasit
Pseudokode 3
Algoritmen leser inn et tall. Er tallet mindre enn 1, skriver den ut «Ugyldig». Ellers legger den sammen alle partall fra 1 til og med tallet og skriver ut summen, for eksempel 2 + 4 + 6 = 12 for tallet 6.
LøsningsforslagKI-generert
Vi følger flytskjemaet steg for steg og sammenligner med de tre sekvensene. Alle tre starter likt: sum settes til 0, tallet leses inn, og tall mindre enn 1 gir «Ugyldig». Forskjellen ligger i løkka.
I flytskjemaet
- starter
npå 1 - sjekker løkka
n <= tall - legges
ntil summen bare hvisner et partall - øker
nmed 1 i hver runde, uansett omnvar partall eller ikke
| Startverdi | Test inne i løkka | Økning | |
|---|---|---|---|
| Flytskjemaet | n = 1 | er n et partall? | 1 |
| Pseudokode 1 | n = 2 | ingen test | 2 |
| Pseudokode 2 | n = 1 | n % 2 NOT EQUAL TO 0 (oddetall) | 1 |
| Pseudokode 3 | n = 1 | n % 2 EQUAL TO 0 (partall) | 1 |
n % 2 er resten når n deles på 2. Resten er 0 for partall og 1 for oddetall.
- Pseudokode 3 har samme startverdi, samme partallstest og samme økning som flytskjemaet. Den beskriver den samme algoritmen.
- Pseudokode 2 tester om resten er forskjellig fra 0. Da legges oddetallene sammen i stedet. Med
tall = 6gir den , mens flytskjemaet gir 12. - Pseudokode 1 gir faktisk samme resultat som flytskjemaet for alle tall, for eksempel når
tall = 6. Men den løser oppgaven på en annen måte: Den starter på 2, hopper to om gangen og trenger ingen partallstest. Flytskjemaet går gjennom alle tallene 1, 2, 3, … og tester hvert av dem. Pseudokode 1 er derfor en annen (og mer effektiv) algoritme for det samme problemet.
Svaret er pseudokode 3.
Algoritmen leser inn et tall. Er tallet mindre enn 1, skriver den ut «Ugyldig» og stopper. Ellers går den gjennom alle hele tall fra 1 opp til og med tallet, legger sammen de som er partall, og skriver ut summen.
Med tall = 7 blir det slik:
n | Partall? | sum etterpå |
|---|---|---|
| 1 | nei | 0 |
| 2 | ja | 2 |
| 3 | nei | 2 |
| 4 | ja | 6 |
| 5 | nei | 6 |
| 6 | ja | 12 |
| 7 | nei | 12 |
Når n blir 8, er n <= tall usann. Løkka stopper, og algoritmen skriver ut 12. Er tallet 1, blir det ingen partall å legge sammen, og utskriften blir 0.