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:
Hun setter opp et program for å finne ut hvilket som passer henne best.
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)
b) Hva bør Kari tenke på når hun skal velge tilbud?
</div>Eksempel 2
Celine sitter med en figurtallsoppgave, se figur under.
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:
F = 2 # Figurnummeret
antall = 2 * F * (F + 1)
print(antall)
Celine utvider programmet sitt til følgende kode:
F = 1
S = 0
while F < 5:
antall = 2 * F * (F + 1)
S = S + antall
F = F + 1
print(S)
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 som han omarbeider.
Programmet blir som følger:
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
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
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.
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>