Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

Oppgave 1 - Kodeforståelse

a) Les igjennom denne koden og svar på spørsmålene nedenfor. Det er ikke lov å bruke pcen PC-en til hjelp.

Code Block
languagepython
def sum_even_numbers_until(number):
	    result = 0
	    numbers = range(0,number+1)
	    for number in numbers:
		        if number % 2 == 0:
			            result += number
	    return result
# i)1. Hva gjør koden overmetoden sum_even_numbers_until?
# ii)2. Hva skjer om vi kjører koden:
		print (sum_even_numbers_until(10+1))
 
def a(n,f,l):
	    b = 0
	    for i in range(0,n):
		        if(i % f == 0 or i % l == 0):
		          b += i
	    return b
# i)3. Hva gjør dennemetoden metodena?
# ii)4. Hva gjør denne koden vanskeligere å forstå enn den øverste?
# iii)5. Hva skjer om vi kjører koden:
		print (a(10,3,5))

b) Les over koden nedenfor og svar på spørsmålene under. Det er ikke lov å bruke datamaskin som hjelp.

Code Block
languagepython
def tell(liste):
	antall = 0
	while antall < len(liste)-1 and liste[antall+1] > liste[antall]:
		antall += 1
	return antall
  1. Hva blir tell([0])? 
    a. 0 0          b. 1 c1          c. 2
  2. Hva blir tell([0, 1, 4])?
    a. 1 b. 2 1          b. 2          c. 3
  3. Hva blir tell([0, 3, 4, 2, 1])? 
    a. 1 b. 2 c1          b. 2          c. 3
  4. Hva blir tell([2, 5, 6, 7, 67, 7, 8, 9, 11, 24])?
    a. 4 3          b. 6 c6          c. 10

Oppgave 2 - Skrive større program

Nasjonalt Geografisk InformasjonsSenter (NGIS) har laget en 2-dimensjonal matrise hoydetabell, hoydetabell, med  med heltallsverdier som angir høyder over havet for et “firkantet” område i terrenget. Et utdrag fra tabellen kan være:

...

Du har blitt bedt om å lage et Python-program for å søke igjennom denne tabellen med høydedata og skrive ut en beskjed på skjermen dersom høyden i en celle er 2000 meter eller høyere. Denne beskjeden skal bestå av radnummer, kolonnenummer og tallverdien til cellen. Du kan anta at dataene er lagt inn i variabelen hoydetabell allerede før ditt program skal starte. Du vet foreløpig ikke hvor mange rader/kolonner matrisen inneholder, og det er forventet at programmet ditt skal fungere for alle matriser av denne formen. 

...

c) Dere skal nå teste programmet deres. Skriv kode for å lese inn en fil (hint, se forrige øving eller spør undass.) ) og test programmet deres med innholdet fra denne. En fil dere kan teste på finnes her: Tabell.txt

Oppgave 3 - Formasjonsteknologi grunnkurs (filhåndtering)

Flygeskolen skal avholde sin årlige eksamen i Formasjonsteknologi grunnkurs. I denne sammenheng er det viktig for de fagansvarlige – stuntlektor Due og professor Kråke – å melde inn hvilke studenter som skal få ta eksamen. I år har deler av øvingsopplegget vært obligatorisk.
Det er totalt 12 øvinger i faget. Følgende regler gjelder for å få godkjent øvingsopplegg:

  1. minst 5 av de 6 første øvingene må være godkjent (øvingene 1-6)
  2. minst 4 av de 6 siste øvingene må være godkjent (øvingene 7-12)
  3. minst én av øving 11 og 12 må være godkjent.

a) Skriv en funksjon, godkjent, som tar inn som parameter en tabell med 12 tall, der hvert tall er 1 eller 0. 1 betyr godkjent og 0 betyr ikke godkjent. 

Code Block
languagepython
[1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0]

Listen over viser altså en student som har fått øvingene 1, 4, 5, 7, 8, 9 og 11 godkjent. Dette er ikke tilstrekkelig for å få ta eksamen. Funksjonen du skriver skal returnere True hvis øvingsopplegget er godkjent og False hvis ikke, etter reglene beskrevet ovenfor.

 b) Skriv et lite program som tar inn en fil bestående av tusen slike kandidater. Programmet skal returnere hvor mange av kandidatene som får ta eksamen.

Framgangsmåte:

...

Code Block
languagepython
import random
lines = 1000
ovinger = 12
f = open (" testdata .txt", "w")
for i in range (0, lines ):
	s = ''
	for j in range (0, ovinger ):
		s += str. format ('{0} ', random . randint (0,1))
	f. writelines (s +'\n')
f. close ()

...

Code Block
f = open ('testdata .txt ', 'r')
for line in f:
	candidate = line . split (' ')
	candidate .pop ()
	# Skriv din kode her

...