Python på matteeksamen: slik leser og skriver du kode for hånd
Programmering er en del av alle mattefagene på videregående. Fra våren 2027 er hele eksamen uten datamaskin, så koden leser og skriver du på papir. Her er byggesteinene du trenger, fire korte programmer du bør forstå, og de vanligste feilene.
I denne artikkelen:
Hva kan du få på eksamen?
Læreplanene i matte sier at programmering er en del av faget. På eksamen har det vanligvis betydd å lese et kort program, forklare hva det gjør og endre det, for eksempel slik at det regner med en annen rente.
Udir skriver at eksamen i R1 og S1 fra våren 2027 også kan be deg om å skrive programmer selv. Siden hele eksamen skrives for hånd, skriver du koden på papir. Les mer om endringene fra 2027. Tar du R1, viser leksjonen programmering på R1-eksamen hvordan du skriver slike programmer selv, med numerisk derivasjon, halveringsmetoden og Newtons metode.
Byggesteinene
De fleste programmene på eksamen bruker bare disse delene:
- Variabler:
pris = 200lagrer tallet 200 i variabelenpris. - Utskrift:
print(pris)skriver ut verdien. - for-løkke: gjentar noe et bestemt antall ganger.
range(3)gir tallene 0, 1 og 2, altså tre runder. - while-løkke: gjentar noe så lenge en betingelse er sann.
- if og else: gjør ett av to valg.
- Funksjoner:
def f(x):lager en funksjon, ogreturngir svaret tilbake.
Innrykket viser hva som hører til løkka eller funksjonen. Potens skrives **, så x2 blir x**2.
Program 1: vekst år for år
pris = 200
for aar in range(3):
pris = pris * 1.1
print(round(pris))
Den beste måten å lese et program på er å lage en tabell over variablene:
| Runde (aar) | pris etter runden |
|---|---|
| 0 | 200 · 1,1 = 220 |
| 1 | 220 · 1,1 = 242 |
| 2 | 242 · 1,1 = 266,2 |
Programmet skriver ut 266. Det regner ut 200 · 1,13, altså en pris som øker med 10 % per år i tre år. Skal det regne med fem år og 4 %, bytter du range(3) med range(5) og 1.1 med 1.04. Se også vekstfaktor.
Program 2: når er beløpet doblet?
belop = 1000
aar = 0
while belop < 2000:
belop = belop * 1.05
aar = aar + 1
print(aar)
Løkka går så lenge beløpet er under 2 000 kr. Hver runde vokser beløpet med 5 %, og aar øker med 1. Etter 14 år er beløpet 1 000 · 1,0514 ≈ 1 980 kr, som fortsatt er under 2 000. Etter 15 år er det 1 000 · 1,0515 ≈ 2 079 kr. Programmet skriver ut 15.
Uten datamaskin kan du finne det samme ved å prøve deg fram på kalkulatoren: 1,0514 ≈ 1,98 og 1,0515 ≈ 2,08.
Program 3: summen av mange tall
s = 0
for n in range(1, 101):
s = s + n
print(s)
range(1, 101) gir tallene fra 1 til og med 100. Det siste tallet, 101, er ikke med. Programmet legger sammen 1 + 2 + … + 100 og skriver ut 5050. Slike summer kommer igjen i rekker i R2 og S2.
Program 4: halveringsmetoden (1T og R1)
def f(x):
return x**2 - 2
a = 1
b = 2
for i in range(20):
m = (a + b) / 2
if f(a) * f(m) <= 0:
b = m
else:
a = m
print(round(m, 3))
Programmet leter etter nullpunktet til f(x) = x2 − 2 mellom 1 og 2. Hver runde ser det på midtpunktet m. Har f(a) og f(m) ulikt fortegn, ligger nullpunktet mellom a og m, og b flyttes til m. Ellers flyttes a. Etter 20 halveringer er intervallet svært lite, og programmet skriver ut 1.414. Det er √2 ≈ 1,414, som stemmer, fordi (√2)2 − 2 = 0.
Slik skriver du kode for hånd
- Gjør innrykket tydelig. Rykk inn like langt for alt som hører til løkka. Du kan gjerne tegne en svak loddrett strek.
- Husk kolon etter
for,while,if,elseogdef. - Skriv
**for potens, ikke^. - Skill mellom
=og==. Ett likhetstegn lagrer en verdi, to sammenligner. - Test programmet i hodet. Lag en tabell over variablene for de to første rundene.
Vanlige feil
- Tro at range(3) gir 1, 2, 3. Det gir 0, 1, 2.
- Sette print inne i løkka når bare svaret til slutt skal skrives ut. Da skrives det ut én linje per runde.
- Telle én runde for mye eller for lite i en while-løkke. Sjekk betingelsen helt i starten og helt til slutt.
Kilder
- Utdanningsdirektoratet: Endringer i eksamen
- Læreplan i matematikk 1P (MAT08-01)
- Læreplan i matematikk for realfag (MAT03-02)
Temaer forklart med eksempler
- Prosentregning: slik regner du ut prosent
- Prosentvis endring: formel og eksempler
- Vekstfaktor: hva det er og hvordan du regner
- Pris før rabatt: finn verdien før endringen
- Alle temaene
Mer om faget
- Les et Python-program – forklart steg for steg
- Programmering med Python: modulen i matte 1P
- Oppgaver med fasit i 1P, ordnet etter tema
- Eksamen i 1P: del 1, del 2 og hjelpemidler
Ser du en feil? Si fra, så retter vi den. Alt innhold i Sophus skal være riktig.