Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Oppgave 1 -

...

Repetisjon 

Skriv en funksjon, «fakultet», som tar inn et tall og finner fakultet av tallet ved bruk av rekursjon.

a) Lag en funksjon func() som returnerer en liste med alle tall mellom 0 og 50 som er delelig på 3. Bruk en for-løkke.

Code Block
languagepy
titleEksempel på kjøring
#print(func())
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48]

b) Gjør om programmet ditt fra a) til å be brukeren om å velge en nedre og en øvre grense på intervallet. Disse grensene skal tas inn som argumenter i func() og alle tallene inne i intervallet som er delelig på 3 skal legges til i listen som returneres. 

Code Block
languagepy
titleEksempel på kjøring
Oppgi en nedre grense for intervallet, a: 10
Oppgi en øvre grense for intervallet, b: 30
#print(func(a,b))
[12, 15, 18, 21, 24, 27, 30]

c) Opprett en tom dictionary Filmanmeldelse

d) Lag en funksjon add_movie(navn, terningkast) som tar inn en streng og et heltall, navn(key) og terningkast(value), og legger filmen til i dictionaryen Filmanmeldelse

e) Utvid funksjonaliteten fra d) slik at du kan legge til flere terningkast til hver film. For eksempel kan VG gi en film terningkast 3, mens Dagbladet kan gi den samme filmen terningkast 5.

Expand
titleHint

Du må ha en liste med terningkast for hver film.

For å sjekke om filmen finnes fra før av kan du bruke "if key in dict". Du kan også løse dette med unntakshåndtering.

Code Block
languagepy
titleEksempel på kjøring av Filmanmeldelse
#print(Filmanmeldelse)
{'Harry Potter': [6], 'Deadpool': [3, 6], 'Ole Brumm': [5], 'Never say never': [1]}

 

f) Hva skriver koden under ut? 

Forklar hva koden gjør.

Code Block
languagepy
titleKode
def myst3(A,x):
    for r in range(0,len(A)):
        for c in range(0,len(A[0])):
            if(A[r][c]==x):
                return r*c
    return 0
print(myst3([[1,2,3],[4,5,6],[7,8,9]],8))


Oppgave 2 - Fibonacci

Fibonacci tallene er definert rekursivt på følgende måte:

F1 = 1
F2 = 1
F1 = F(n-1)+F(n-2)

Starter på Fibonacci-rekken er 0 1 1 2 3 5 8 11 19...

Skriv en funksjon,

...

fib, som tar inn n og finner det n’te

...

Fibonacci-tallet. Tegn også opp alle funksjons-evalueringene som gjøres når fib(5) kjøres.

Image Modified

Code Block
languagepy
titleEksempel på kjøring
#print(fib(5))
5
 
#print(fib(6))
8

 

Oppgave 3 - Pascals trekant

Skriv en funksjon som finner den n’te raden av pascals trekant. De første seks radene i pascals trekant vises i bildet under.

Image Modified

Code Block
languagepy
titleEksempel på kjøring
#print(pascal(6))
[1, 5, 10, 10, 5, 1]


Oppgave 4 - Palindrom

Et palindrom er et uttrykk som gir samme resultat enten det leses fra høyre eller venstre. Skriv en rekursiv funksjon,

...

palindromTest som tar inn en streng og returnerer True dersom det er et palindrom og False ellers.

...

Code Block
languagepy
titleEksempel på kjøring
#print(palindromTest('a'))
True

#print(palindromTest('agnes i senga'))
True

#print(palindromTest('Maoam'))
False      
                     #Merk at m!=M
#print(palindromTest('halla'))
False


Oppgave 5

Oppgave 5 - Minste element

Skriv en funksjon, «minElement», som tar inn en liste og finner det minste elementet ved bruk av rekursjon.

...

- Største element

Skriv en funksjon,

...

maxElement, som tar inn en liste og finner det største elementet ved bruk av rekursjon.

Oppgave

...

6 - Exponent

Skriv en funksjon,

...

exponent, som tar inn et tall og eksponenten det skal opphøyes i. Funksjonen skal bruke rekursjon til å opphøye tallet i eksponenten.

...

Tenk at og at osv.

Code Block
languagepy
titleEksempel på kjøring
#print(exponent(5,4))
625

...