Oppgave 1 - Kodeforståelse

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

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
# 1. Hva gjør metoden sum_even_numbers_until?
# 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
# 3. Hva gjør metoden a?
# 4. Hva gjør denne koden vanskeligere å forstå enn den øverste?
# 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.

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          b. 1          c. 2
  2. Hva blir tell([0, 1, 4])?
    a. 1          b. 2          c. 3
  3. Hva blir tell([0, 3, 4, 2, 1])
    a. 1          b. 2          c. 3
  4. Hva blir tell([2, 5, 6, 7, 7, 7, 8, 9, 11, 24])?
    a. 3          b. 6          c. 10

Oppgave 2 - Skrive større program

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

1893 1895 2010 1900 1769 1780 . . .
1907 1960 2001 1760 1870 1800 . . .
1910 1783 1840 2109 1902 1950 . . .
1753 1840 1974 2150 1823 1880 . . .
. . . . . . . . . . . . . . . . . . . . .

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. 

a) Lag et Pythonprogram som løser oppgaven. Du trenger ikke bekymre deg for input enda. Gjør gjerne antagelser der du føler det mangler i oppgaveteksten.
b) Vis hvordan du vil utvide programmet slik at det helt til slutt skriver ut “Maks høyde var:” etterfulgt av verdien til den maksimale høyden, og deretter “Koordinatene med maks høyde:” etterfulgt av koordinatene for det eller de punktene som har denne høydeverdien. 

Hvis det er flere punkter som har den samme høyeste verdien, skal alle disse koordinatene skrives ut, men selve høyden skal bare skrives én gang

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

 

  • No labels