Hopp til innholdet

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:
  1. Hva kan du få på eksamen?
  2. Byggesteinene
  3. Program 1: vekst år for år
  4. Program 2: når er beløpet doblet?
  5. Program 3: summen av mange tall
  6. Program 4: halveringsmetoden (1T og R1)
  7. Slik skriver du kode for hånd
  8. Vanlige feil

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 = 200 lagrer tallet 200 i variabelen pris.
  • 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, og return gir 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
0200 · 1,1 = 220
1220 · 1,1 = 242
2242 · 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

  1. Gjør innrykket tydelig. Rykk inn like langt for alt som hører til løkka. Du kan gjerne tegne en svak loddrett strek.
  2. Husk kolon etter for, while, if, else og def.
  3. Skriv ** for potens, ikke ^.
  4. Skill mellom = og ==. Ett likhetstegn lagrer en verdi, to sammenligner.
  5. 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

Temaer forklart med eksempler

Mer om faget

Ser du en feil? Si fra, så retter vi den. Alt innhold i Sophus skal være riktig.