Sortere pseudokode for fortegn og 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?
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.
Nedenfor ser du flere linjer med pseudokode som skal skrive ut følgende resultat når linjene er sortert i riktig rekkefølge:
-2 er negativt og partall
-1 er negativt og oddetall
0 er null
1 er positivt og oddetall
2 er positivt og partall
Merk: Operatoren % betyr rest ved heltallsdivisjon og kan skrives som mod eller Mod i noen programmeringsspråk.
Sorter linjene med pseudokode i riktig rekkefølge slik at den skriver ut resultatet som er beskrevet ovenfor.
Sorter linjene
DISPLAY num + " er positivt og partall"DISPLAY num + " er positivt og oddetall"DISPLAY num + " er negativt og oddetall"DISPLAY num + " er negativt og partall"IF num % 2 EQUAL TO 0FOR hver num LESSER THAN OR EQUAL TO 2ELSESET num to -2ELSEELSE IF num EQUAL TO 0IF num % 2 EQUAL TO 0ENDIFIF num LESSER THAN 0ENDIFENDFORDISPLAY num + " er null"ENDIFELSE
Fasit
SET num to -2
FOR hver num LESSER THAN OR EQUAL TO 2
IF num LESSER THAN 0
IF num % 2 EQUAL TO 0
DISPLAY num + " er negativt og partall"
ELSE
DISPLAY num + " er negativt og oddetall"
ENDIF
ELSE IF num EQUAL TO 0
DISPLAY num + " er null"
ELSE
IF num % 2 EQUAL TO 0
DISPLAY num + " er positivt og partall"
ELSE
DISPLAY num + " er positivt og oddetall"
ENDIF
ENDIF
ENDFOR
Strukturen er entydig. De to like IF num % 2-linjene, de tre ELSE-linjene og de tre ENDIF-linjene kan likevel bytte plass med hverandre.
LøsningsforslagKI-generert
Det lønner seg å finne skjelettet først og fylle inn detaljene etterpå.
Løkka. Utskriften går gjennom tallene fra til . SET num to -2 må derfor stå først, og deretter FOR hver num LESSER THAN OR EQUAL TO 2. Løkka øker num med 1 for hver runde og slutter etter num = 2. ENDFOR står helt til slutt.
Fortegnet. Inne i løkka må programmet først skille mellom tre tilfeller: negativt tall, null og positivt tall. Det gjør en IF med tre grener:
IF num LESSER THAN 0
…
ELSE IF num EQUAL TO 0
…
ELSE
…
ENDIF
Partall eller oddetall. For negative og positive tall skal programmet i tillegg skrive om tallet er partall eller oddetall. Tallet er partall når resten ved deling med 2 er null. Derfor ligger det en IF num % 2 EQUAL TO 0 … ELSE … ENDIF inne i både den første og den siste grenen. For null trengs ingen slik test, så grenen for null har bare DISPLAY num + " er null".
Opptelling av linjene. De 18 linjene går opp: to IF num % 2-tester, tre ELSE (én i hver av de to indre testene og én i den ytre), og tre ENDIF (to for de indre testene og én for den ytre). Ved første øyekast kan det se ut som om det mangler en ENDIF, men ELSE IF åpner ingen ny IF-blokk som må lukkes. Den er en del av den ytre testen, som lukkes med én ENDIF.
Kontroll. Går vi gjennom løkka for , gir programmet nøyaktig de fem linjene i oppgaven. For eksempel gir grenen num LESSER THAN 0, og siden ikke er null, skrives «-1 er negativt og oddetall».
Sensorveiledning
Oppgaven gir til sammen 2 poeng
Det gis uttelling for riktig for-løkke og vurdering av negativ/positiv verdi, null og partall/oddetall.