Eksempel eksamensoppgave 1P

Programmeringsoppgave i 1P skal elevene primært kunne lese og forklare kode, og si hva koden gjør. De vil i mye mindre grad bli bedt om å skrive eller endre kode. Under er et par eksempler på oppgaver som viser dette.

Eksempel 1

Kari skal kjøpe abonnement på elsparkesykkel og søker på nett for å finne priser. Hun finner følgende tabell:

tabell-01.png

Hun setter opp et program for å finne ut hvilket som passer henne best.

1 
2
3
4
5
6
7
8
9
10
11
ant_min = 0

GetUThere = 10 + 2.5 * ant_min           # Regner ut abonnementet til GetUThere
CityRoll = 5 + 2.55 * ant_min            # Regner ut abonnementet til CityRoll

while GetUThere > CityRoll:
    ant_min = ant_min + 1                # Øker tiden med 1 minutt
    GetUThere = 10 + 2.5 * ant_min           
    CityRoll = 5 + 2.55 * ant_min

print(ant_min)
<div class="alert alert-block alert-info"> a) Programmet vil skrive ut et tall til Kari. Forklar hvilken informasjon tallet gir Kari.<br>

b) Hva bør Kari tenke på når hun skal velge tilbud?

</div>

Eksempel 2

Celine sitter med en figurtallsoppgave, se figur under.

figurtall-01.png

Hun tenker at hun kan lage et program som kan hjelpe henne med å utforske oppgaven. Celine bruker først regresjon til å finne et uttrykk for figurtallet og lager følgende kode:

1 
2
3
4
5
F = 2                        # Figurnummeret

antall = 2 * F * (F + 1)

print(antall)
<div class="alert alert-block alert-info"> a) Hva vil programmet skrive ut hvis Celine setter figurtallet til 4? </div>

Celine utvider programmet sitt til følgende kode:

1 
2
3
4
5
6
7
8
9
F = 1
S = 0

while F < 5:
    antall = 2 * F * (F + 1)
    S = S + antall
    F = F + 1

print(S)
<div class="alert alert-block alert-info"> c) Hvilket tall vil programmet skrive ut i siste linje?<br>

b) Hva forteller tallet som skrives ut i siste linje?

</div>

Eksempel 3

David lager et program som omregner fra Fahrenheit til Celsius og bruker formelen F=95C+32F = \frac{9}{5}C + 32 som han omarbeider.

Programmet blir som følger:

1 
2
3
4
5
Temp_F = 25

Temp_C = Temp_F - 32 * 5 / 9

print(Temp_C)

Når David kjører programmet får han et svar som ser ok ut, men læreren sier at det er en feil i programmet hans.

<div class="alert alert-block alert-info"> a) Hva vil David få som svar når han kjører programmet ovenfor?<br>

b) Hva ville du ha sagt til David for at han skulle få ordnet programmet sitt?

</div>

Eksempel 4

Per har laget et program som tegner grafen til andregradsfunksjonen

f(x)=x2+11x+30 f(x) = x^2 + 11x+30
1 
2
3
4
5
6
7
import matplotlib.pyplot as plt      # Henter inn kommandoer vi trenger for å plotte
import numpy as np                   # Henter inn kommandoer vi trenger for å lage x-verdier

x = np.linspace(0, 5, 100)           # Lager x-verdier fra 0 til 5
y = x**2 + 11*x + 30                 # Regner ut de tilhørende funksjonsverdiene

plt.plot(x, y)                       # Plotter grafen til x^2 + 11x + 30

graf01-2.png

Kari samarbeider med Per og sier at dette ser mer ut som en lineær funksjon enn en andregradsfunksjonen og at det kanskje er noe galt i koden til Per.

<div class="alert alert-block alert-info"> a) Kommenter bekymringen til Kari.<br>

b) Foreslå hva Per kan endre i programmet sitt for å overbevise Kari om at det er korrekt. Kan her velge om du vil skrive endringen på kodeform eller forklare endringen med ord.

</div>