Programmering med følger og rekker#

  • Kunne lese, tolke og skrive programmer som regner ut leddene i en følge

  • Kunne lese, tolke og skrive programmer som regner ut summen av leddene i en rekke

Når vi skal bruke programmering til å regne med følger og rekker, så er det en viktig forutsetning av vi vet hvordan vi skriver for-løkker og while-løkker. Dette er fordi vi ofte skal gjenta en regneoperasjon mange ganger.

for-løkker#

Med en for-løkke kan vi gjenta en regneoperasjon et bestemt antall ganger ved å bruke range-funksjonen.

for-løkker med range-funksjonen#

Den generelle måten å skrive en for-løkke på er

for n in range(start, stopp, step):
    # kode som skal gjentas

Da vil range-funksjonen generere en tallfølge som tilordnes variabelen n med følgende egenskaper:

  • det første tallet er lik verdien til start

  • alle andre tall har en avstand mellom seg lik step

  • det siste tall som genereres er mindre enn verdien til stopp

Eksempel 1#

I programmet nedenfor er

  • start lik 1 som betyr at det første tallet som genereres er \(1\)

  • stopp lik 11 som betyr at det siste tallet kan maksimalt være \(10\)

  • step lik 2 som betyr at avstanden mellom tallene som genereres er \(2\)

Altså skriver programmet ut tallfølgen \(1, 3, 5, 7, 9\)


Underveisoppgave 1#

Ta quizen!

Hvilken tallfølge skrives ut av programmet?

1for n in range(2, 10, 2):
2    print(n)
\[ 2, 4, 6, 8 \]
\[ 2, 4, 6, 8, 10 \]
\[ 4, 6, 8, 10 \]
\[ 2, 10, 2 \]

Hvilken tallfølge skrives ut av programmet?

1for n in range(-4, 5, 2):
2    print(n)
\[ -4, -2, 0, 2, 4 \]
\[ -4, -2, 0, 2, 4, 5 \]
\[ -4, -3, \ldots, 3, 4 \]
\[ -4, 5, 2 \]

Hvilken tallfølge skrives ut av programmet?

1for n in range(1, 6, 1):
2    print(n)
\[ 1, 2, 3, 4, 5 \]
\[ 1, 2, 3, 4, 5, 6 \]
\[ 1, 6, 1 \]
\[ 2, 3, 4, 5, 6 \]

Hvilken tallfølge skrives ut av programmet?

1for n in range(10, 1, -3):
2    print(n)
\[ 10, 7, 4 \]
\[ 10, 7, 4, 1 \]
\[ 1, 4, 7, 10 \]
\[ -3, 0, 3, 6, 9 \]

for-løkker med standardverdier#

En for-løkke med range-funksjonen kan skrives som

for n in range(stopp):
    # kode som skal gjentas

der start = 0 og step = 1 er standardverdier. Programmet vil derfor generere tallfølgen

\[ 0, 1, 2, \ldots, \text{stopp} - 1 \]

Vi kan også skrive

for n in range(start, stopp):
    # kode som skal gjentas

der step = 1 er standardverdi. Programmet vil derfor generere tallfølgen

\[ \text{start}, \text{start} + 1, \text{start} + 2, \ldots, \text{stopp} - 1 \]

while-løkker#

Programmering med følger#

Vi kan bruke både for-løkker og while-løkker til å regne ut leddene i en følge. Da bruker vi n til å holde styr på hvilket ledd vi er i følgen, og så bruker vi en variabel for å regne ut de ulike tallene i tallfølgen.

Eksempel#

En tallfølge \(\{a_n\}\) er gitt ved

\[ a_n = 3 + 2(n - 1) \qfor n = 1, 2, 3, \ldots \]

Lag et program som skriver de \(5\) første leddene i følgen.

Vi kan bruke en for-løkke for \(n = 1, 2, 3, 4, 5\)

Underveisoppgave#

Programmet nedenfor skriver ut de \(5\) første leddene i en følge \(\{a_n\}\).

Hvilke verdier skriver programmet ut?

Programmering med rekker#