Oppgaver: Programmering av tallfølger#
Oppgave 1
Ta quizen!
Oppgave 2
Nedenfor vises noen programkoder som skriver ut noen tall. Les programmene og prøv å forutsi hvilke tall de skriver ut.
Skriv inn gjetningen din og sjekk svaret ditt for hvert av programmene.
Oppgave 3
Fyll ut programmet nedenfor slik at det skriver ut alle tallfølgen
Fasit
1for n in range(1, 9):
2 print(n)
Fyll ut programmet nedenfor slik at det skriver ut tallfølgen
Fasit
1for n in range(2, 10, 2):
2 print(n)
Fyll ut programmet nedenfor slik at det skriver ut tallfølgen
Fasit
1for n in range(1, 14, 4):
2 print(n)
Fyll ut programmet nedenfor slik at det skriver ut tallfølgen
Fasit
1for n in range(-5, 6, 2):
2 print(n)
Oppgave 4
Fyll ut programmet nedenfor slik at det skriver ut tallfølgen
Fasit
for n in range(10, 1, -4):
print(n)
Fyll ut programmet nedenfor slik at det skriver ut tallfølgen
Fasit
for n in range(100, -1, -10):
print(n)
Fyll ut programmet nedenfor slik at det skriver ut tallfølgen
Fasit
for n in range(5, -6, -2):
print(n)
Fyll ut programmet nedenfor slik at det skriver ut tallfølgen
Fasit
for n in range(-2, -15, -3):
print(n)
Oppgave 5
Fyll ut programmet nedenfor slik at det skriver ut alle partallene til og med \(20\).
Fasit
1for n in range(2, 21, 2):
2 print(n)
Fyll ut programmet nedenfor slik at det skriver ut alle oddetallene til og med \(21\).
Fasit
1for n in range(1, 22, 2):
2 print(n)
Lag et program som skriver ut de \(20\) første partallene.
Fasit
for n in range(1, 21):
partall = 2 * n
print(partall)
Lag et program som skriver ut de \(20\) første oddetallene.
Fasit
for n in range(1, 21):
oddetall = 2 * n - 1
print(oddetall)
Oppgave 6
I denne oppgaven skal du lære hvordan man summerer tall med et program.
I programmet nedenfor summeres noen tall med en variabel s
i en løkke. Linja s = s + n
legger til verdien av n
til summen s
.
Les programmet og forutsi hvilken verdi som skrives ut av programmet.
Endre på programmet slik at det regner ut summen
Fasit
1s = 0 # variabel som skal lagre summen
2for n in range(1, 101):
3 s = s + n
4
5print(s)
Endre på programmet slik at det regner ut summen
Fasit
1s = 0 # variabel som skal lagre summen
2for n in range(1, 101, 2):
3 s = s + n
4
5print(s)
Endre på programmet slik at det regner ut summen
Fasit
1s = 0 # variabel som skal lagre summen
2for n in range(2, 101, 2):
3 s = s + n
4
5print(s)
Oppgave 7
Nedenfor ser du tre figurer. Figurene er satt sammen av små kvadrater.
Tenk deg at du skal fortsette å lage figurer etter samme mønster. Vi lar \(K_n\) være antall små kvadrater i figur \(n\).
Bestem en formel for \(K_n\).
Fasit
Lag et program som regner ut og skriver ut hvor mange små kvadrater det er i hver av de \(10\) første figurene.
Du starter med å lage figur \(1\), så figur \(2\), deretter figur \(3\), og så videre.
Lag et program som finner ut hvor mange kvadrater du må bruke for å lage de 10 000 første figurene.
Oppgave 8
Nedenfor ser du tre figurer. Figurene er satt sammen av små kvadrater.
Tenk deg at du skal fortsette å lage figurer etter samme mønster. Vi lar \(K_n\) være antall små kvadrater i figur \(n\).
Bestem en formel for \(K_n\).
Fasit
Lag et program som beregner og skriver ut hvor mange små kvadrater det er i hver av de \(20\) første figurene.
Tenk deg at du har 1 000 000 små kvadrater. Du starter med å lage figur \(1\), så figur \(2\), deretter figur \(3\), og så videre.
Lag et program som finner ut
Hvor mange figurer du kan lage
Hvor mange små kvadrater du har igjen
Oppgave 9
I denne oppgaven skal du jobbe med summer av oddetall og partall.
Vi lar \(S_n\) være summen av de \(n\) første oddetallene slik at
Lag et program som skriver ut de \(20\) første oddetallene. Bruk formelen for oddetallene gitt ved
Fasit
1for n in range(1, 21):
2 oddetall = 2 * n - 1
3
4 print(oddetall)
Lag et program som skriver ut \(S_1, S_2, S_3, \ldots, S_{20}\).
Fasit
1s = 0
2for n in range(1, 21):
3 oddetall = 2 * n - 1
4 s = s + oddetall
5
6 print(s)
La \(P_n\) være summen av de \(n\) første partallene.
Lag et program som skriver ut \(P_1, P_2, P_3, \ldots, P_{20}\).
Fasit
1p = 0
2for n in range(1, 21):
3 partall = 2 * n
4 p = p + partall
5
6 print(p)
Oppgave 10
Anna og Nicolai jobber med å lage et program som regner ut \(n\)-fakultet definert med formelen:
For eksempel er
Når vi regner ut summer, så setter vi en variabel s = 0
på starten av programmet, og så legger vi til leddene ved å skrive s = s + ledd
.
Ja, kanskje vi bare kan bytte ut plusstegnet med et gangetegn da?
Men hvis s
er 0
i starten, så blir jo svaret alltid 0
?
Ja, men vi startet med 0
fordi å plusse på 0
endrer ikke summen. Hvilket tall er det som ikke endrer verdien til et produkt?
Ta utgangspunkt i dialogen mellom Anna og Nicolai og lag et program som regner ut \(5!\).
Fasit
1s = 1
2for n in range(1, 6):
3 s = s * n
4
5print(s)
Antall måter å stokke en kortstokk på er \(52!\)
Bruk programmet ditt til å regne ut \(52!\).
Kan du forklare hvorfor det sannsynligvis stemmer at når man stokker en kortstokk, så er det nesten umulig å få samme rekkefølge som en annen gang?
Fasit
1s = 1
2for n in range(1, 53):
3 s = s * n
4
5print(s)
som gir utskriften
80658175170943878571660636856403766975289505440883277824000000000000
Oppgave 11
Nedenfor vises et kvadrat med sidelengder \(3\).
Kvadratet er fylt med mindre fargelagte kvadrater som blir mindre og mindre.
Lag et program som skriver ut arealet til de \(10\) største fargelagte kvadratene i figuren.
Fasit
1s = 3
2for n in range(1, 11):
3 s = s / 2
4
5 print(s**2)
Lag et program som skriver regner ut summen av arealene til de \(100\) største fargelagte kvadratene i figuren.
Fasit
1areal = 0
2s = 3
3for n in range(1, 101):
4 s = s / 2
5 areal = areal + s**2
6
7
8print(areal)
Oppgave 12
Nedenfor vises en figur som er satt sammen av uendelige mange linjestykker.
Lengden til et linjestykke er alltid \(90 \%\) av lengden til det forrige linjestykket. Det første linjestykket er \(100\) cm langt.
Lag et program som skriver ut lengden til de \(10\) første linjestykkene i figuren.
Fasit
1l = 100
2for n in range(1, 11):
3 print(l)
4
5 l = 0.9 * l
Lag et program som regner ut summen av lengdene til de \(100\) første linjestykkene i figuren.
Fasit
1s = 0
2l = 100
3for n in range(1, 101):
4 s = s + l
5 l = 0.9 * l
6
7print(s)
Lag et program som finner hvor mange linjestykker du må sette sammen for at figuren skal være minst \(9\) meter.