Hopp til innhald
Nynorsk
Oppgåve

Programmering med eigendefinerte funksjonar

I desse oppgåvene skal du bruke eigendefinerte funksjonar i løysinga.
Denne sida er arkivert. Innhaldet kan vere utdatert.

Denne artikkelen er i eit fag som følgjer ein utgått læreplan. Versjonen du ser på, kan innehalde utdatert informasjon eller ha andre feil.

Oppgåve 1

Vi ønsker å lage eit program som reknar ut f(0) for funksjonen

f(x)=2x+1

For å øve på bruk av eigendefinerte funksjonar i Python, skal vi lage ein eigendefinert funksjon med namnet f som kan rekne ut funksjonsverdiar for oss.

a) Algoritme

Skriv algoritmen til eit slikt program og til funksjonen f. Hugs å få med tekstar som forklarer brukaren av programmet kva programmet gjer.

Løysingsforslag

Algoritmen til programmet:

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

Vinkelparentesar betyr "verdien av ...".

Algoritmen til den eigendefinerte funksjonen f(x):

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

b) Koding

Skriv koden til programmet etter algoritmane ovanfor.

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

Oppgåve 2

Vi ønsker å lage eit program som med funksjonen f(x)=2x+1 reknar ut 3 funksjonsverdiar som brukaren skriv inn.

a) Algoritme

Skriv algoritmen til eit slikt program. Hugs å få med tekstar som forklarer brukaren av programmet kva programmet gjer.

Løysingsforslag
  • Skriv til skjermen: "Dette programmet reknar ut funksjonsverdiar for 3 valfrie x-verdiar."
  • Gjer tre gonger:

    • Skriv til skjermen: "Skriv inn ein x-verdi."
    • Ta imot x-verdien frå brukaren, og sett talet lik variabelen x.
    • Skriv til skjermen: "f(<x>) = <f(x)>"

I tillegg treng vi algoritmen til den eigendefinerte funksjonen f frå førre oppgåve.

b) Koding

Skriv koden som passar til algoritmen over.

Løysingsforslag
Python
1def f(x):
2  return 2*x + 1
3
4print("Dette programmet reknar ut funksjonsverdiar for 3 valfrie x-verdiar.")
5for i in range(3):
6  x = float(input(f"Skriv inn {i + 1}. x-verdi:"))
7  print(f"f({x}) = {f(x)}")

Oppgåve 3

Nokre elevar i ein klasse har laga eit program som skal rekne ut funksjonsverdiar for funksjonen

f(x)=x2+2x

Ingen av dei får programmet til å køyre. Kan du finne ut kva som er feilen i programma? Skriv ned kva linje som har feil, og kva som er feilen. Til slutt: Skriv eit program som verkar.

Tips til oppgåva

Om du ikkje finn feilen, kan du sjekke dei andre programma og sjå kva som er annleis 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øysing

Denne programkoden verkar:

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

Oppgåve 4

Vi ønsker å lage eit program som lagar ein verditabell med funksjonen f(x)=2x+1 der brukaren skriv inn kva som er største og minste x-verdi i tabellen.

a) Algoritme

Skriv algoritmen til eit slikt program. Hugs å få med tekstar som forklarer brukaren av programmet kva programmet gjer.

Løysingsforslag
  • Skriv til skjermen: "Skriv inn den nedste verdien i verditabellen:"

  • Set variabelen x_l lik verdien frå brukaren.

  • Skriv til skjermen: "Skriv inn den øvste verdien i verditabellen:"

  • Set variabelen x_h lik verdien frå brukaren.

  • Set 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 auke med 1.

I tillegg treng vi algoritmen til funksjonen f frå oppgåve 1.

b) Koding

Skriv koden til programmet.

Tips til oppgåva

Du kan bruke \t for å lage litt finare utskrifter. Denne koden flyttar utskriftpunktet til neste tabulator.

Løysingsforslag
Python
1def f(x):
2  return 2*x + 1
3
4x_l = float(input("Skriv inn den nedste verdien i verditabellen:"))
5x_h = float(input("Skriv inn den øvste verdien 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 finst måtar å lage endå finare utskrift på. Søk på nettet etter "f-string align with decimal point", til dømes.

Nedlastbare filer

Her kan du laste ned oppgåvene som ei fil i formatet til Jupyter Notebook.

Skrive av Bjarne Skurdal.
Sist oppdatert 13.08.2026