Oppgave 8
I denne oppgaven skal du lage en funksjon som skal hete karakter
. Denne funksjonen skal ta inn hvor mange poeng en elev har fått og antall poeng det er mulig å få på en prøve og returnere en karakter mellom 1 og 6. Du står fritt til å velge hvordan funksjonen skal sette karaktergrensene, men du kan godt ta utganspunkt i følgende karaktergrenser:
Karakter 1: [0-17) prosent
Karakter 2: [17-34) prosent
Karakter 3: [34-50) prosent
Karakter 4: [50-67) prosent
Karakter 5: [67-84) prosent
Karakter 6: [84-100) prosent
Målet i oppgaven er å fullføre følgende kode:
1
2
3
4
maks_score = int(input("Hvor mange poeng er det mulig å oppnå?\n"))
def karakter(poengsum):
# TODO: Fullfør funksjonen slik at den returnerer et tall (karakter) mellom 1 og 6.
8 a) Fokus i oppgaven: Flytdiagram
I første omgang skal du lage et flytdiagram som visualiserer hvordan funksjonen karakter
skal fungerer.
8 b) Fokus i oppgaven: Pseudokode
Skriv en pseudokode som beskriver hvordan funksjonen karakter
fungerer.
Løsningsforslag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
maks_score = int(input("Hvor mange poeng er det mulig å oppnå?\n"))
def karakter(poengsum):
# Pseudokode:
# Sjekk om poengsummen er innenfor karaktergrensen tilhørende karakter 1.
# Hvis ja - returner karakter 1
# Sjekk om poengsummen er innenfor karaktergrensen tilhørende karakter 2.
# Hvis ja - returner karakter 2
# Sjekk om poengsummen er innenfor karaktergrensen tilhørende karakter 3.
# Hvis ja - returner karakter 3
# Sjekk om poengsummen er innenfor karaktergrensen tilhørende karakter 4.
# Hvis ja - returner karakter 4
# Sjekk om poengsummen er innenfor karaktergrensen tilhørende karakter 5.
# Hvis ja - returner karakter 5
# Returner karakter 6
8 c) Fokus i oppgaven: Fra pseudokode til kode
Fullfør den egendefinerte funksjonen karakter
. Husk å teste at den fungerer som den skal.
Løsningsforslag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
maks_score = int(input("Hvor mange poeng er det mulig å oppnå?\n"))
def karakter(poengsum):
relativ_score = poengsum/maks_score
if relativ_score < 1/6:
return 1 # 1-6
elif relativ_score < 2/6:
return 2
elif relativ_score < 3/6:
return 3
elif relativ_score < 4/6:
return 4
elif relativ_score < 5/6:
return 5
else:
return 6
Ekstra:
Hensikten med å skrive kode er ofte for å automatisere repetative arbeidsoppgaver. Med utgangspunkt i arbeidet du har gjort til nå, lag et program som gir deg mulighet til å skrive inn poengsummen til alle besvarelsene til en elevgruppe og som returnerer de tilhørende karakterene.