Forrige oppgave


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.


Neste oppgave