Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Logg inn

Valgte tags:

Filtrering:

Skriv ut:

1.3.3: Mount Everest

1.
Lag et program som spør hvor mange meter over havet noen befinner seg, og deretter printer "n er m% av høyden til Mount Everest".

for eksempel: "345.60 m er 3.91 prosent av Mount Everest"

2.
Utvid nå dette programmet til å kommentere brukerens høyde over havet, med flere forskjellige kommentarer avhengig av hvor høyt vedkommende befinner seg.

Vis løsningsforslag

oppgave 1

hoyde = input("Hvor høyt(i meter) sitter du?")
hoyde = float(hoyde)    #konverterer hoyde til flyttall

everest = 8848 #høyden til Everest
prosentAndel = (hoyde/everest)*100  #regner om til %

print("Du er på ",round(prosentAndel,2)," prosent av Mount Everest ved ",round(hoyde,2)," meter")

Det er lurt å unngå spesiealtegn som æ,ø og å i variabelnavn ettersom dette ofte kan føre til feil.

Programmet over kunne alternativt bli skrevet slik:

hoyde = float(input("Hvor høyt(i meter) sitter du?"))   #konverterer input til float

prosentAndel = (hoyde/8848)*100 #regner om til %

print("Du er på ",round(prosentAndel,2)," prosent av Mount Everest ved ",round(hoyde,2)," meter")

Vi kjører programmet og får:

Hvor høyt sitter du? 345.6
Du er på 3.91 prosent av Mount Everest ved 345.60 meter

Oppgave 2

For å kunne kommentere høyden til personen, må vi legge til flere beslutninger. Desto flere beslutninger vi har, desto flere kommentarer kan vi ha. Vi skriver følgende program:

hoyde = input("Hvor høyt(i meter) sitter du?")
hoyde = float(hoyde)

everest = 8848 #høyden til Everest
prosentAndel = (hoyde/everest)*100#regner om til %

if hoyde < 0:
    print("Er du i en tunnel?")
elif hoyde==0:
    print("Du sitter på bakken eller vannet")
elif hoyde > 0 and hoyde<2:
    print("Går du deg en tur?")
elif hoyde>2 and hoyde<100:
    print("Er du i en bygning")
elif hoyde>100 and hoyde<8000:
    print("Du er er over 100 m")
elif hoyde>8000: 
    print("Er du på flytur?")
else:
    print("Du er på ",round(prosentAndel,2)," prosent av Mount Everest ved ",round(hoyde,2)," meter")

Vi kan ha så mange beslutninger vi ønsker etter hverandre. Når vi lager flere beslutninger, må alltid den første beslutningen være en if-statement. Alle beslutninger som kommer etter if burde være elif(else if) hvis vi vil at de ikke skal testes hvis if-statementet inntreffer. elif gjør det samme som if og sjekker om noe er sant eller ikke.

Programmet vil alltid gå inn i den første if- eller elif-beslutningen som er sann. Så hvis vi for eksempel hadde hatt:

if hoyde>100
    print("Du er er over 100 m")
elif hoyde>8000:
    print("Er du på flytur?")

ville programmet aldri spurt om du er på flytur. Grunnen til dette er at hvis tallet er over 8000, vil det først sjekke om det er over 100, dette vil alltid være sant, og programmet vil derfor printe at du er over 100 m. Dette er grunnen til at vi bruker nøkkelordet and. Når vi bruker and kan vi sjekke om tallet ligger mellom to andre tall. Det begrenser altså hvor ofte en beslutning er sann.

Det er alltid lurt å avslutte beslutninger med en else-statement. else er alltid sann, så hvis ingen tidligere beslutninger har vært sanne, vil programmet gå inn i else. Hvis ikke du har noe fornuftig å skrive under else-statementen, kan du bruke det som en feilmelding.

Vi kjører programmet med et tall og får:

Hvor høyt(i meter) sitter du? 324523465
Er du på flytur??