Hopp til innholdet

Løkker i Python: oppgaver med fasit

Matematikk 1P · Vg1, praktisk matematikk · 15 oppgaver · eksamen: del 2

15 oppgaver i løkker i Python i 1P, med løsning steg for steg og fasit. Prøv selv først, og trykk «Vis løsning» når du vil sjekke svaret. Oppgavene er sortert fra kort til lang løsning.

Lær dette i Sophus: 8.2 Løkker: gjenta en utregning, 8.3 Endre et program i Matematikk 1P, med video og øving med nye tall hver gang. Se leksjonen

Lettere oppgaver

Oppgave 1

Hvilke tall gir range(4)?

  1. A: 1, 2, 3, 4
  2. B: 0, 1, 2, 3
  3. C: 0, 1, 2, 3, 4
  4. D: 1, 2, 3
Vis løsning på oppgave 1

range(4) begynner på 0 og stopper før 4: 0, 1, 2, 3.

Det er 4 runder.

Fasit: B: 0, 1, 2, 3

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 2

Hvor mange linjer skriver programmet ut?

belop = 1000
for aar in range(2):
    belop = belop * 1.1
    print(round(belop, 2))
Vis løsning på oppgave 2

print er rykket inn og kjøres i hver av de 2 rundene: 2 linjer.

Fasit: 2

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 3

Hvilken utregning gjør programmet?

belop = 5000
for aar in range(3):
    belop = belop * 1.04
  1. A: 5 000 × 1,04³
  2. B: 5 000 + 5 000 × 0,04 × 3
  3. C: 5 000 × 1,04⁴
  4. D: 5 000 × 1,04 × 3
Vis løsning på oppgave 3

Beløpet ganges med 1,04 3 ganger: 5 000 × 1,04³.

Fasit: A: 5 000 × 1,04³

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 4

Hvilke tall gir range(3)?

  1. A: 0, 1, 2
  2. B: 1, 2
  3. C: 1, 2, 3
  4. D: 0, 1, 2, 3
Vis løsning på oppgave 4

range(3) begynner på 0 og stopper før 3: 0, 1, 2.

Det er 3 runder.

Fasit: A: 0, 1, 2

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 5

Hvor mange ganger skriver programmet «Hei»?

for i in range(6):
    print("Hei")
Vis løsning på oppgave 5

range(6) gir tallene 0, 1, … , 5.

Det er 6 runder, så «Hei» skrives 6 ganger.

Fasit: 6

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Middels vanskelige

Oppgave 6

Hva skriver programmet ut?

belop = 2000
for aar in range(2):
    belop = belop * 1.03
print(round(belop, 2))
Vis løsning på oppgave 6

Beløpet ganges med 1,03 i hver av de 2 rundene: 2 000 × 1,03² = 2 121,8.

Fasit: 2 121,8

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 7

Hva skriver programmet ut?

belop = 1000
aar = 0
while belop <= 1300:
    belop = belop * 1.05
    aar = aar + 1
print(aar)
Vis løsning på oppgave 7

Etter 5 år er beløpet omtrent 1 276,3, og etter 6 år omtrent 1 340,1.

Det er over 1 300, så løkka stopper, og aar er 6.

Fasit: 6

Fra leksjon 8.3 Endre et program · Se forklaringen i videoen

Oppgave 8

Programmet finner når 1 000 kr med 5 % rente blir mer enn 1 200 kr. Hva må du endre for å finne når beløpet blir mer enn 1 500 kr?

belop = 1000
aar = 0
while belop <= 1200:
    belop = belop * 1.05
    aar = aar + 1
print(aar)
  1. A: Bytte 1 200 med 1 500 i while-linja
  2. B: Bytte aar = 0 med aar = 1 500
  3. C: Bytte 1.05 med en annen vekstfaktor
  4. D: Bytte print(aar) med print(1 500)
Vis løsning på oppgave 8

Grensen står i while-linja.

Bytt 1 200 med 1 500, så er resten av programmet likt.

Fasit: A: Bytte 1 200 med 1 500 i while-linja

Fra leksjon 8.3 Endre et program · Se forklaringen i videoen

Oppgave 9

Hva betyr linja «while belop <= 2 000:»?

  1. A: Gjenta 2 000 ganger
  2. B: Gjenta til beløpet er nøyaktig 2 000
  3. C: Kjør én gang hvis beløpet er under 2 000
  4. D: Gjenta så lenge beløpet er mindre enn eller lik 2 000
Vis løsning på oppgave 9

<= betyr mindre enn eller lik.

Løkka går så lenge beløpet ikke har passert 2000.

Fasit: D: Gjenta så lenge beløpet er mindre enn eller lik 2 000

Fra leksjon 8.3 Endre et program · Se forklaringen i videoen

Oppgave 10

Renten endres til 2 %. Hva skal stå i stedet for 1.05 i programmet?

    belop = belop * 1.05
  1. A: 1.2
  2. B: 2
  3. C: 0.02
  4. D: 1.02
Vis løsning på oppgave 10

2 % rente gir vekstfaktoren 1 + 0,02 = 1,02, som skrives 1.02 i Python.

Fasit: D: 1.02

Fra leksjon 8.3 Endre et program · Se forklaringen i videoen

Mer krevende

Oppgave 11

Hvor mange ganger skriver programmet «Hei»?

for i in range(3):
    print("Hei")
Vis løsning på oppgave 11

range(3) gir tallene 0, 1, … , 2.

Det er 3 runder, så «Hei» skrives 3 ganger.

Fasit: 3

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 12

Hva skriver programmet ut?

belop = 5000
for aar in range(3):
    belop = belop * 1.02
print(round(belop, 2))
Vis løsning på oppgave 12

Beløpet ganges med 1,02 i hver av de 3 rundene: 5 000 × 1,02³ = 5 306,04.

Fasit: 5 306,04

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 13

Linja som øker telleren, mangler. Hva skriver programmet ut?

belop = 1000
aar = 0
while belop <= 1100:
    belop = belop * 1.05
print(aar)
Vis løsning på oppgave 13

aar får verdien 0 og endres aldri, fordi linja aar = aar + 1 mangler.

Programmet skriver ut 0.

Fasit: 0

Fra leksjon 8.3 Endre et program · Se forklaringen i videoen

Oppgave 14

Hva er den siste linja programmet skriver ut?

for n in range(1, 7):
    pris = n * 45
    print(pris)
Vis løsning på oppgave 14

range(1, 7) gir n = 1, 2, … , 6.

Den siste linja er 6 × 45 = 270.

Fasit: 270

Fra leksjon 8.2 Løkker: gjenta en utregning · Se forklaringen i videoen

Oppgave 15

Programmet gir en feilmelding. Hva er feil?

saldo = 15000
aar = 0
while saldo = 20000:
    saldo = saldo * 1.06
    aar = aar + 1
print(aar)
  1. A: print skal stå øverst
  2. B: while-linja bruker =, som setter en verdi, i stedet for å sammenligne
  3. C: aar må starte på 1
  4. D: Linja etter while mangler innrykk
Vis løsning på oppgave 15

= setter en verdi, og == sjekker.

I while-linja skal det stå en sammenligning: while saldo < 20 000:

Fasit: B: while-linja bruker =, som setter en verdi, i stedet for å sammenligne

Fra leksjon 8.3 Endre et program · Se forklaringen i videoen

Fasit

Vis fasit til alle oppgavene
  1. Oppgave 1: B: 0, 1, 2, 3
  2. Oppgave 2: 2
  3. Oppgave 3: A: 5 000 × 1,04³
  4. Oppgave 4: A: 0, 1, 2
  5. Oppgave 5: 6
  6. Oppgave 6: 2 121,8
  7. Oppgave 7: 6
  8. Oppgave 8: A: Bytte 1 200 med 1 500 i while-linja
  9. Oppgave 9: D: Gjenta så lenge beløpet er mindre enn eller lik 2 000
  10. Oppgave 10: D: 1.02
  11. Oppgave 11: 3
  12. Oppgave 12: 5 306,04
  13. Oppgave 13: 0
  14. Oppgave 14: 270
  15. Oppgave 15: B: while-linja bruker =, som setter en verdi, i stedet for å sammenligne

Oppgavene hører til leksjonene 8.2–8.3 i modulen Programmering med Python, som øves til del 2. Les mer om eksamen i 1P, og bruk formelarket for 1P når du øver.

Les også

Oppgavene er laget av Sophus med de samme oppgavemalene som i kurset, og løsningene er kontrollert av en regnekontroll. Ser du likevel en feil, si fra på kontakt@sophus.no, så retter vi den.