Skip to content
English

Subject

Task

Programmering med egendefinerte funksjoner

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

Oppgave 1

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:

  • Sett variabelen x lik 0.
  • Skriv til skjermen: "f(<x>) = <f(x)>"

Vinkelparenteser betyr "verdien av ...".

Algoritmen til den egendefinerte funksjonen f(x):

  • Regn ut følgende: Multipliser x med 2, og legg til 1.
  • Returnerer svaret.

b) Koding

Skriv koden til programmet etter algoritmene ovenfor.

Løsningsforslag
Python
1def f(x):
2  return 2*x + 1
3
4x = 0
5print(f"f({x}) = {f(x)}")

Oppgave 2

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 variabelen x.
    • Skriv til skjermen: "f(<x>) = <f(x)>"

I tillegg trenger vi algoritmen til den egendefinerte funksjonen f fra forrige oppgave.

b) Koding

Skriv koden som passer til algoritmen over.

Løsningsforslag
Python
1def f(x):
2  return 2*x + 1
3
4print("Dette programmet regner ut funksjonsverdier for 3 valgfrie x-verdier.")
5for i in range(3):
6  x = float(input(f"Skriv inn {i + 1}. x-verdi:"))
7  print(f"f({x}) = {f(x)}")

Oppgave 3

Noen elever i en klasse har laget 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.

Programmet til Lisa:

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

Programmet til Rikard:

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

Programmet til Per:

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

Programmet til Leif:

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

Programmet til Rolf:

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

Programmet til Tale:

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

Programmet til Gunnar:

Python
1def f(x):
2return x**2+2*x
3print(f(3))
Løsning

Denne programkoden virker:

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

Oppgave 4

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.

Løsningsforslag
  • Skriv til skjermen: "Skriv inn nederste verdi i verditabellen:"

  • Sett variabelen x_l lik verdien fra brukeren.

  • Skriv til skjermen: "Skriv inn øverste verdi i verditabellen:"

  • Sett variabelen x_h lik verdien fra brukeren.

  • Sett variabelen x lik x_l.

  • Skriv til skjermen: "x (tabulator) f(x)"

  • Gjenta så lenge x er mindre enn eller lik x_h:

    • Skriv til skjermen: "<x> (tabulator) <f(x)>"

    • La x øke med 1.

I tillegg trenger vi algoritmen til funksjonen f fra oppgave 1.

b) Koding

Skriv koden til programmet.

Tips til oppgaven

Du kan bruke \t for å lage litt penere utskrifter. Denne koden flytter utskriftspunktet til neste tabulator.

Løsningsforslag
Python
1def f(x):
2  return 2*x + 1
3
4x_l = float(input("Skriv inn nederste verdi i verditabellen:"))
5x_h = float(input("Skriv inn øverste verdi i verditabellen:"))
6x = x_l
7print("x\tf(x)")
8while x <= x_h:
9  print(f"{x}\t{f(x)}")
10  x = x + 1

Det fins måter å lage enda penere utskrift på. Søk på nettet etter "f-string align with decimal point", for eksempel.

Nedlastbare filer

Her kan du laste ned oppgavene som ei fil i formatet til Jupyter Notebook.

Written by Bjarne Skurdal.
Last updated 08/13/2026