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.

Filtrering:

10.11: Tallsiffer til tekst

a) Lag et program som oversetter fra tallsiffer til tekst slik at f.eks. 3 blir oversatt til "tre". Programmet skal kunne oversette alle 10 sifre (fra 0 til 9). Hint: Bruk en liste med tekstene "null", "en", "to", osv.

b) Lag et program som oversetter fra tekst til tall. Programmet skal be brukeren skrive inn et tall mellom null og ni (med bokstaver), og skrive ut tilsvarende siffer. Hint: Bruk listen fra del (a).

c) Utvid programmet slik at du også kan oversette tosifrete tall over 20 og mindre enn 100, slik at feks 21 tilsvarer "tjue-en". Prøv å gjøre dette uten å lagre alle tallene og heller gjenbruke mest mulig av de allerede lagrede tallene.

10.12: Plante

a) Lag en klasse Plante. Hver plante har sin egen variabel vannbeholder og maksgrense_vann. Plante skal ha følgende metoder:

  • vann_plante(vann_cl): Øker vannbeholder med _vann_cl. Om vannbeholder blir større enn maksgrense_vann dør planten.
  • ny_dag(): For hver dag minker vannbeholder med 20 (planten drikker vannet). Om vannbeholder blir mindre enn 0, dør planten.
  • levende(): Om planten er levende skal det returneres True, om ikke planten er levende skal det returneres False. Hint: Det kan være lurt å ha en variabel som holder styr på om planten er levende eller ikke.

c)
1. Opprett et Plante-objekt hvor maksgrense_vann er satt til 40 og et annet Plante-objekt hvor maksgrense_vann er satt til 90.
2. Vann begge plantene med 10 cl.
3. La det gå to dager for begge plantene.
4. Sjekk om plantene er levende og skriv ut status til skjermen.

10.13: Tekstbehandling

a) Lag et program med en variabel som inneholder teksten "Agnes i senga". Bruk en løkke til å printe ut teksten i variabelen baklengs.

b) Lag en variabel som inneholder teksten "INF1000" og en variabel som inneholder teksten "inf1000". Lag en test for om disse variablene er like.

c) Lag deretter en variabel som inneholder teksten "INF1100 INF1000 INF1010". Lag programmet ditt sånn at du henter ut kun "INF1000" og lagrer dette i en ny variabel som du skriver ut til terminal.

10.14: Kopiering av liste.

a) Lag en liste som skal inneholde tekststrenger. Tekststrengene skal være: "Ole", "Dole", "Doffen", "Donald", "Dolly", "Langbein" og "Pluto".

b) Lag en funksjon som tar inn en liste, og kopierer alle elementene inn i en ny liste. Du skal returnerer den nye listen. Her er det ikke lov å bruke ferdige funksjoner!

c) Skriv deretter ut alle elementene av listen til terminalen for å sjekke at de faktisk er like.

d) Lag deretter en funksjon som tar inn to lister og sjekker at alle elementene er like.

e) Prøv nå å kopiere listen ved å gjøre:

liste2 = list(liste1)

(Variabelnavnene liste2 og liste1 kan du nødvendigvis endre.)

Er resultatet det samme?

11.01: Representasjon i ulike tallsystemer

Disse tallene er skrevet med vanlige desimal notasjon:

0 12 25 52 81

Skriv dem som binærtall, hextall og oktaltall. Tallsystem angis i parentes bak hvert enkelt svar.

Eksempel (tallet 0 i desimal notasjon):
0(10) = 0(2) = 0(16) = 0(8)

12(10) = 1100(2) = C(16) = 14(8)
25(10) = 11001(2) = 19(16) = 31(8)
52(10) = 110100(2) = 34(16) = 64(8)
81(10) = 1010001(2) = 51(16) = 121(8)

11.02: Representasjon av bilder

denne nettsiden er vist fem versjoner av samme bilde. Sorter dem etter kvalitet (fra best til dårligst).

C A E B D

2.01: hello_world.py

Navn: hello_world.py

a) Lag et program som lagrer tekststrengen "Hello" i en variabel "hello" og print denne variabelen til terminalen.
b) Lag en variabel "world" som tar var på tekststrengen "World".
c) Print nå begge variablene til skjermen i kun én print-setning

UTFORDRING
d) Bruk variablene "hello" og "world" i en eller flere print-setning til å gi utskriften

Hello? World?

Hint: Som parameter til print() kan man gi sep="" for at det ikke skal komme mellomrom mellom parameterene

hello = "Hello"
print(hello)

world = "World"
print(world)

print(hello, world)

print(hello, "? ", world, "?", sep="")

2.02: Differansen mellom to heltall.

Navn: differanse.py

Lag et program som ber om og leser inn to heltall. Programmet skal deretter regne ut differansen mellom de to tallene og skrive ut svaret. Her er et eksempel på hvordan en kjøring av programmet kan se ut:

Oppgi verdien til x: 
> 25
Oppgi verdien til y: 
> 19
Differansen mellom x og y er 6.

Hint: Du behøver ikke tenke på at det første tallet kan være mindre enn det andre. Det er ikke nødvendig å regne ut absoluttverdien av differansen (men prøv gjerne å finne ut hvordan det gjøres, dersom du ønsker en ekstra utfordring).

inp = input("Oppgi verdien til x:\n> ")
x = int(inp)

inp = input("Oppgi verdien til y:\n> ")
y = int(inp)

print("Differansen mellom x og y er", x-y)

2.02: Sammenligning av to tall

Navn: sammmenlign.py

Lag et program som inneholder to heltallsvariable, a og b. Gi variablene verdier som du selv velger. Sjekk om a er større enn b, og skriv ut til skjerm enten "a er større enn b" eller "a er ikke større enn b". Varier verdiene du setter for a og b, og sjekk at resultatet blir som forventet i alle tilfellene.

a = 4
b = 2

if a > b :
    print("a er større enn b")
else:
    print("a er ikke større enn b")

2.04: Regn ut produktet av to heltall.

Navn: produkt.py

a) Lag et program som ber om og leser inn to heltall. Programmet skal deretter regne ut produktet av de to tallene og skrive ut svaret.

Her er et eksempel på hvordan en kjøring av programmet kan se ut:

Oppgi verdien til x: 
> 5
Oppgi verdien til y: 
> 4
Produktet av x og y er 20.
x = int( input("Oppgi verdien til x:\n> ") )
y = int( input("Oppgi verdien til y:\n> ") )
print("Produktet av x og y er", x*y)

Merk at vi her ikke mellomlagrer verdien bruker gir før vi konverterer fra string til int. Man kunne også skrevet

inp = input("Oppgi verdien til x:\n> ")
x = int(inp)

2.05: Finn ut om siste siffer er felles.

Navn: siste_siffer.py

Gitt tre heltallsvariable, a, b og c med ikke-negative verdier som du velger selv. Sjekk om to eller flere har felles siste siffer, og skriv eventuelt ut disse til skjerm.

Hint: se om du kan bruke modulo-operatøren (%)!

a = 43
b = 123
c = 324

if a % 10 == b % 10:
    print("a og b har like siste siffer")

if a % 10 == c % 10:
    print("a og c har like siste siffer")

if b % 10 == c % 10: 
    print("b og c har like siste siffer")

Operatoren % som er brukt her, kalles "modulo". Den beregner resten av det første tallet delt på det andre tallet. I 10-tallssystemet vil resten av et tall delt på 10 alltid være det siste sifferet i tallet (prøv selv!).

Merk at vi bruker if hele veien, og ikke elif. Årsaken er at det er mulig at flere tall har felles siste siffer -- og da vil vi ha ut alle!

2.06: Mindre eller større enn.

Navn: mindre_større.py

a) Lag et program som tar inn et tall fra brukeren og skriver ut om tallet er mindre eller større enn 10.
b) Legg deretter til en test til for å sjekke om tallet er mindre eller større enn 20.
c) Endre programmet slik at brukeren kun får én tilbakemelding per tall som er tastet innn.

Programmet skal kunne se slik ut under kjøring:

Tast inn et tall: 
> 13
Tallet er mellom 10 og 20

Tast inn et tall: 
> 9
Tallet er under 10

Tast inn et tall: 
> 22
Tallet er over 20
inp = input("Tast inn et tall:\n> ")
tall = int(inp)

if tall < 10 :
    print("Tallet er under 10")
elif tall > 10 and tall < 20 : 
    print("Tallet er mellom 10 og 20")
elif tall == 10 or tall == 20 : 
    print("Tallet er", tall)
else:
    print("Tallet er over 20")

2.07: Skatt i Ruritania.

Navn: skatt_Ruritania.py

I det fiktive landet Ruritania er skattereglene slik at hvis en person har inntekt < 10000, så betaler man 10% skatt på hele inntekten, og hvis inntekten >= 10000, så betaler man 10% skatt på de første 10000 kronene og 30% skatt på resten av inntekten. Lag et program som regner ut og skriver ut hvor mange kroner som skal betales i skatt. Programmet skal lese inntekten (som antas å være et desimaltall) fra terminal.

inp = input("Tast inn din inntekt:\n> ")
inntekt = float(inp)

if inntekt < 10000 : 
    skatt = inntekt*0.1
else:
    skatt = 10000*0.1 + (inntekt - 10000)*0.3
print("Skatt:", skatt)

2.08: Kroppstemperatur.

Navn: kroppstemperatur.py

Hos friske mennesker varierer kroppstemperaturen vanligvis mellom 36.5 og 37.5 grader. Lag et program som avgjør om en persons kroppstemperatur ligger henholdsvis under, innenfor eller over normal kroppstemperatur. Programmet skal lese kroppstemperaturen fra terminal. (Hint: Her må du lese inn desimaltall fra terminalen! Vi kan bruke float() for å konvertere String til desimaltall).

inp = input("Oppgi kroppstemperatur:\n> ")
temp = float(inp)

if temp < 36.5 : 
    print("Du har lavere kroppstemperatur enn normalen")
elif temp > 37.5 :
    print("Du har høyere kroppstemperatur enn normalen")
else:
    print("Du har normal kroppstemperatur")

2.09: Ulike verdier.

Navn: ulike_verdier.python

Lag et program som inneholder to heltallsvariable, i og j. Gi variablene verdier som du selv velger. Sjekk om i og j er forskjellige, og skriv ut til skjerm enten "i og j har ulike verdier" eller "i og j har ikke ulike verdier". Varier verdiene du setter for i og j, og sjekk at resultatet blir som forventet i alle tilfellene.

i = 4
j = 1233

if i != j : 
    print("i og j har ulike verdier")
else:
    print("i og j har like verdier")

2.10: Handletur

Navn: handletur.py

Programmet skal regne ut totalpris for en bruker etter å ha vært på handletur. De varene det er mulig å kjøpe er brød, melk, ost og youghurt.

Prisene er som følger:
Brød: 20 kr.
Melk: 15 kr.
Ost: 40 kr.
Youghurt: 12 kr.

Eksempel på interaksjon med programmet:

Hei! Velkommen til IFI-butikken.
Hvor mange brød vil du ha?
> 2
Hvor mange melk vil du ha?
> 1
Hvor mange ost vil du ha?
> 1
Hvor mange yoghurt vil du ha?
> 3
Du skal betale: 131 kr.
pris_brød = 20
pris_melk = 15
pris_ost = 40
pris_youghurt = 12

sum = 0

print("Hei! Velkommen til IFI-butikken.")
inp = input("Hvor mange brød vil du ha?\n> ")
sum+= int(inp)*pris_brød

inp = input("Hvor mange melk vil du ha?\n> ")
sum+= int(inp)*pris_melk

inp = input("Hvor mange ost vil du ha?\n> ")
sum+= int(inp)*pris_ost

inp = input("Hvor mange youghurt vil du ha?\n> ")
sum+= int(inp)*pris_youghurt

print("Du skal betale:", sum, "kr.")

2.11: Høyde.

Filnavn: høyde.py

Du skal lage en program som gir tar inn en høyde i cm fra bruker, og skriver ut et av følgende alternativer:
- Du er lav.
- Du er middels.
- Du er høy.

Grensen for å være lav er om høyde < 140 cm, og grensen for å være høy er om høyde > 190 cm.

inp = input("Oppgi høyde i cm:\n> ")
høyde = int(inp)

if høyde < 140 : 
    print("Du er lav.")
elif høyde > 190 : 
    print("Du er høy.")
else: 
    print("Du er middels")

2.12: Busstur

Filnavn: busstur.py

Du skal skrive et program som sjekker om det er plass på en buss på en bussrute med tre stopp. For hvert stopp, skal bruker taste inn hvor mange passasjerer som går på bussen. Det er plass til inntil 30 passasjerer i bussen. Dersom bussen er full, kan ingen gå på. Dersom flere ønsker å gå på, enn det er gjenværende plasser på bussen, får kun noen nye passasjerer plass.

Vi antar at alle passasjerer skal til endestasjonen, så vi behøver ikke ta høyde for at noen går av bussen underveis.

Eksempel på kjøring:

Stasjon 1! Hvor mange gaar paa bussen?
> 14
Stasjon 2! Hvor mange gaar paa bussen?
> 13
Stasjon 3! Hvor mange gaar paa bussen?
> 5
Bussen er full. 2 maa gaa til fots.
passasjerer = 0


inp = input("Stasjon 1! Hvor mange går på bussen?\n> ")
nye = int(inp)

if passasjerer + nye >= 30:
    print("Bussen er full.", passasjerer + nye - 30, "må gå til fots")
    passasjerer = 30
else:
    passasjerer += nye
    print(nye, "personer går ombord i bussen")


inp = input("Stasjon 2! Hvor mange går på bussen?\n> ")
nye = int(inp)

if passasjerer + nye >= 30:
    print("Bussen er full.", passasjerer + nye - 30, "må gå til fots")
    passasjerer = 30
else:
    passasjerer += nye
    print(nye, "personer går ombord i bussen")


inp = input("Stasjon 3! Hvor mange går på bussen?\n> ")
nye = int(inp)

if passasjerer + nye >= 30:
    print("Bussen er full.", passasjerer + nye - 30, "må gå til fots")
    passasjerer = 30
else:
    passasjerer += nye
    print(nye, "personer går ombord i bussen")


print("Bussen er fremme med", passasjerer, "personer ombord")

2.13: Har du råd?

Filnavn: råd.py

Du skal lage et program som først tar inn saldoen på din bankkonto (NB: Det skal være mulig å ta inn et tall med desimaler). Deretter skal man skrive inn en totalpris på en vare du har lyst til å kjøpe. Programmet skal deretter gi tilbakemelding om du har råd eller ikke.

inp = input("Oppgi saldo: ")
saldo = float(inp)

inp = input("Skriv inn prisen på varen du vil kjøpe: ")
pris = float(inp)

if saldo < pris : 
    print("Du har ikke råd til varen. \nDu mangler", pris-saldo, "kr")
else:
    print("Du har råd til varen.\nDu har", saldo-pris,"kr igjen")

2.14: Min utskriftsfunksjon

Navn: min_funksjon.py

a) Lag en funksjon min_funksjon som printer "Hei student" til terminalen.
b) Endre programmet slik at printingen skjer uten et nytt linjeskift på slutten (Hint: print("tekst", end="") kan brukes til å skrive teksten "tekst" uten linjeskifte).
c) Lag en ny funksjon linjeskift() som printer ut et tomt linjeskift.
d) Kall funksjonen linjeskift etter at du har printet og sjekk at det blir likt som i oppgave a).

def min_funksjon():
    # Oppgave a og b
    print("Hei student", end="")

def linjeskift():
    # Oppgave c
    print()

min_funksjon()

# Oppgave d
linjeskift()