Hopp til innhold
Oppgave

Programmering med egendefinerte funksjoner

I disse oppgavene skal du bruke egendefinerte funksjoner i løsningen.

AP-70

Vi ønsker å lage et program som regner ut f(0) for funksjonen

f(x)=2x+1

For å øve på bruk av egendefinerte funksjoner i Python, skal vi lage en egendefinert funksjon med navnet f som kan regne ut funksjonsverdier for oss.

a) Algoritme

Skriv algoritmen til et slikt program og til funksjonen f. Husk å få med tekster som forklarer brukeren av programmet hva programmet gjør.

Løsningsforslag

Algoritmen til programmet:

  • Skriv til skjermen "Dette programmet regner ut f(0) for funksjonen f(x)=2x+1.".
  • Skriv til skjermen "f(0) = (verdien til f(0))".

Med "verdien til f(0)" mener vi at vi setter inn tallet 0 inn i den egendefinerte funksjonen f.

Algoritmen til den egendefinerte funksjonen f:

  • Ta imot en x-verdi, og kall denne x.
  • Regn ut følgende: Multipliser x med 2, og legg til 1.
  • Returnerer svaret.

b) Koding

Skriv koden til programmet etter algoritmene ovenfor.

AP-71

Vi ønsker å lage et program som med funksjonen  f(x)=2x+1  regner ut 3 funksjonsverdier som brukeren skriver inn.

a) Algoritme

Skriv algoritmen til et slikt program. Husk å få med tekster som forklarer brukeren av programmet hva programmet gjør.

Løsningsforslag
  • Skriv til skjermen: "Dette programmet regner ut funksjonsverdier for 3 valgfrie x-verdier."
  • Gjør tre ganger:

    • Skriv til skjermen: "Skriv inn en x-verdi."
    • Ta imot x-verdien fra brukeren, og sett tallet lik en variabel.
    • Sett variabelen inn i funksjonen, og lagre resultatet i en ny variabel.
  • Gjør tre ganger:

    • Skriv til skjermen "Når x-verdien er <variabel>, er funksjonsverdien <variabel>".

b) Koding

Skriv koden som passer til algoritmen over. Prøv først med å bruke vanlige variabler. Prøv etterpå å lage programmet ved å lagre x-verdier og funksjonsverdier i hver sin liste.

AP-72

Noen elever i en klasse har lagd et program som skal regne ut funksjonsverdier for funksjonen

f(x)=x2+2x

Ingen av dem får programmet til å kjøre. Kan du finne ut hva som er feilen i programmene? Skriv ned hvilken linje som har feil, og hva som er feilen. Til slutt: Skriv et program som virker.

Tips til oppgaven

Hvis du ikke finner feilen, kan du sjekke de andre programmene og se hva som er annerledes der.

Lisa sitt program:

def f(x):
    return x**2+2x
print(f(3))

Rikard sitt program:

def f(x):
    return x**2+2*x
print f(3)

Per sitt program:

def f(x)
    return x**2+2*x
print(f(3))

Leif sitt program:

def f(x):
    x**2+2*x
print(f(3))

Rolf sitt program:

def f(x):
    return x^2+2*x
print(f(3))

Tale sitt program:

def f(x):
    return x**2+2*x
print(f)

Gunnar sitt program:

def f(x):
return x**2+2*x
print(f(3))

AP-73

Vi ønsker å lage et program som lager en verditabell med funksjonen  f(x)=2x+1  der brukeren skriver inn hva som er største og minste x-verdi i tabellen.

a) Algoritme

Skriv algoritmen til et slikt program. Husk å få med tekster som forklarer brukeren av programmet hva programmet gjør.

b) Koding

Skriv koden til programmet.

Tips

Funksjonen range() kan være god å bruke her, se artikkelen For-løkker. Det kan også være lurt å bruke lister, se artikkelen Lister.