Eksempel eksamensoppgave 1T
Programmeringsoppgave i 1T skal elevene kunne lese og forklare kode, si hva koden gjør, gjøre endringer i koden, og utvikle koden videre. De vil i mye mindre grad bli bedt om å skrive helt ny kode, likevel kan dette være nyttig i enkeltoppgaver. Under er et par eksempler på oppgaver som viser dette.
Eksempel 1
Arne har laget et program han mener finner funksjonsuttrykket til en rett linje gitt to puntker. Programmet har har laget er som følger:
x1 = 1 # x-koordinaten til første punkt
y1 = 3 # y-koordinaten til første punkt
x2 = 2 # x-koordinaten til andre punkt
y2 = 5 # y-koordinaten til andre punkt
a = x2 - x1 / y2 - y1
b = y1 - x1*a
print("f(x) =", a, "x +", b)
Arne kjører programmet et par ganger og mistenker at det er noe galt i koden.
<div class="alert alert-block alert-info"> a) Kommenter bekymringen til Arne og eventuelle forslag til endringer. </div>Arne ønsker å utvide programmet til også å regne ut nullpunktet til funksjonen. Han legger til følgende linjer på slutten av forrige programkode.
null = ???
print("Nullpunktet til funksjonen er ved x = ", null)
Eksempel 2
Berit sitter med en figurtallsoppgave, se figur under.
Hun tenker at hun kan lage et program som kan hjelpe henne med å utforske oppgaven. Berit lager følgende kode:
antall = 5
i = 1
while i < antall:
F = 2 * i * (i+1)
print(F)
i = i + 1
b) Hva blir resultatet når Berit kjører koden over?
</div>Berit vil gjerne vite hvor mange figurer hun kan lage hvis hun har 100 000 fyrstikker. Hun begynner å endre programmet sitt som følger:
ant_fyrstikker = 100000
i = 0 # Antall figurer laget
S = 0 # Summen av antall fyrstykker brukt så langt
while ???:
i = i + 1
F = 2 * i * (i+1)
S = ???
print(i-1)
d) Utvid programmet til Berit slik at det også regner ut antallet fyrstikker hun har til overs etter å ha lagd siste mulige figur.
</div>Eksempel 3
Carl ønsker å lage et program som bruker enhetssirkelen. Han starter med å tegne opp enhetssirkelen (en halvsirkel med radius 1), setter et punkt på sirkelen, og tegner en rettvinklet , der .
Carl vet videre at og . Ved hjelp av dette lager han følgende program:
from numpy import sin, cos, radians # Gjør at python kan bruke sinus og cosinus
vinkel = 0 # Vinkelen i grader
alpha = radians(vinkel) # Gjør at python kan regne med vinkler i grader
print("Sinus til", vinkel, "er", sin(alpha))
print("Cosinus til", vinkel, "er", cos(alpha))
b) Hva blir resultatet hvis vi endrer til vinkel = 45?
</div>Fra figuren over finner Carl at .
Carl ønsker nå at programmet skal gi han arealet av .
<div class="alert alert-block alert-info"> d) Legg til kode i programmet under (bytt ut "???" med kode) slik at det også regner ut arealet av trekanten. </div>from numpy import sin, cos, radians # Gjør at python kan bruke sinus og cosinus
vinkel = 30 # Vinkelen i grader
alpha = radians(vinkel) # Gjør at python kan regne med grader
areal = ???
print("Sinus til", vinkel, "er", sin(alpha))
print("Cosinus til", vinkel, "er", cos(alpha))
print("Arealet av trekanten er", areal)
Eksempel 4
Dina vil lage et program som finner faktorene til et polynom. Hun tenker at det stort sett er heltallsfaktorer og at de ofte ligger i intervallet .
def P(x):
return x**3 - 2*x**2 - 5*x + 6
for i in range(-20, 21):
if P(i) == 0:
print("En faktor er x -", i)
b) Hva blir resultatet når koden kjøres?<br>
c) Dina ønsker også å finne hvor polynomet krysser -aksen. Utvid koden slik at den finner denne verdien.
</div>