Fullføre pseudokode med dyrenavn
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?
Kan løses med penn og papir. Du trenger ikke kalkulator.
Fra 2027 er det bare kalkulator og skriftlige hjelpemidler på del 2. Vurderingen er gjort med KI og kan inneholde feil.
I denne oppgaven skal du lage en funksjon som bygger opp en tekst basert på noen regler. Funksjonen er ikke ferdig skrevet og mangler en del som bestemmer hvilket dyrenavn som skal legges til. Funksjonen er beskrevet ved hjelp av følgende pseudokode:
FUNCTION beskrivDyr(n):
SET resultat TO " "
FOR hvert tall i fra 1 til n
IF i % 2 EQUAL TO 0
SET resultat TO resultat + "Blå "
ELSE
SET resultat TO resultat + "Rød "
ENDIF
// mangler pseudokode her for å legge til dyrenavn
ENDFOR
RETURN resultat
ENDFUNCTION
DISPLAY beskrivDyr(5)
Forventet resultat for denne funksjonen er: Rød Mus Blå Mus Rød Katt Blå Mus Rød Hund
Fullfør funksjonen slik at den også legger til riktig dyrenavn for hvert tall. Skriv den manglende pseudokoden.
Fasit
Tall 3 gir «Katt», tall 5 gir «Hund» og de andre gir «Mus», for eksempel:
IF i % 5 EQUAL TO 0
SET resultat TO resultat + "Hund "
ELSE IF i % 3 EQUAL TO 0
SET resultat TO resultat + "Katt "
ELSE
SET resultat TO resultat + "Mus "
ENDIF
LøsningsforslagKI-generert
Løkken går gjennom tallene 1 til 5. For hvert tall legger den først til en farge og så, i den delen som mangler, et dyrenavn. Vi deler det forventede resultatet i par med farge og dyr:
i | i % 2 | Farge | Dyr |
|---|---|---|---|
| 1 | 1 | Rød | Mus |
| 2 | 0 | Blå | Mus |
| 3 | 1 | Rød | Katt |
| 4 | 0 | Blå | Mus |
| 5 | 1 | Rød | Hund |
Fargene stemmer med den ferdige if-setningen. Dyrene må vi bestemme selv: tallet 3 gir «Katt», tallet 5 gir «Hund», og alle andre tall gir «Mus». Et mønster som passer, er at tall som er delelige med 5, gir «Hund», og tall som er delelige med 3, gir «Katt». Den manglende koden settes inn etter ENDIF og før ENDFOR:
FUNCTION beskrivDyr(n):
SET resultat TO " "
FOR hvert tall i fra 1 til n
IF i % 2 EQUAL TO 0
SET resultat TO resultat + "Blå "
ELSE
SET resultat TO resultat + "Rød "
ENDIF
IF i % 5 EQUAL TO 0
SET resultat TO resultat + "Hund "
ELSE IF i % 3 EQUAL TO 0
SET resultat TO resultat + "Katt "
ELSE
SET resultat TO resultat + "Mus "
ENDIF
ENDFOR
RETURN resultat
ENDFUNCTION
DISPLAY beskrivDyr(5)
Forklaring:
- Hvert dyrenavn slutter med et mellomrom, akkurat som fargene. Da blir ordene skilt fra hverandre i resultatet.
- Bare ett dyr skal legges til per tall. Derfor brukes én
IF … ELSE IF … ELSE-setning og ikke tre separateIF-setninger. Da blir «Mus» bare lagt til når ingen av de andre betingelsene er sanne. - Rekkefølgen på testene betyr noe hvis
ner større. Tallet 15 er delelig med både 3 og 5. Med testen for 5 først blir det «Hund».
Det forventede resultatet sier bare hva som skal skje for tallene 1 til 5, så andre løsninger er også riktige. Man kan for eksempel teste i EQUAL TO 3 og i EQUAL TO 5 i stedet for å bruke %.