---
course: D0009E
topic: Rekursion och Vägval
---
# Rekursion och Vägval

## Föreläsning 4 – Vägval och rekursionsintroduktion (kapitel 5)
Koncept: [[Vägval]], [[Rekursion]], [[While-loopar]]

- Slides: [lecture04_p3.pdf](../../meta/raw%20course%20dump/D0009E/viewer/files/Slides%20i%20.pdf/lecture04_p3.pdf)
- Kodexempel:
  - [nLines_blastoff.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f4/nLines_blastoff.py) — nedräkning med while-loop/rekursion
- Nyckelbegrepp: if, elif, else, rekursion, basfall, rekursivt anrop, while

## Föreläsning 5 – Rekursion och While-loopar (kapitel 6–7)
Koncept: [[Rekursion]], [[While-loopar]], [[Vägval]]

- Slides: [lecture05_h19_p3.pdf](../../meta/raw%20course%20dump/D0009E/viewer/files/Slides%20i%20.pdf/lecture05_h19_p3.pdf)
- Kodexempel:
  - [abs.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f5/abs.py) — absolut värde
  - [f4_logOrZero.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f5/f4_logOrZero.py) — villkorlig beräkning
  - [log_table.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f5/log_table.py) — logaritmtabell
  - [f6_countdown.py](../../meta/raw%20course%20dump/D0009E/viewer/files/exempel/små_exempel/f5/f6_countdown.py) — nedräkning
- Nyckelbegrepp: while, villkor, rekursion, basfall, accumulator

## Övning F4 – Rekursiv multiplikationstabell
Koncept: [[Rekursion]]

- Modifiera F3-lösningen: inga upprepade kodsnuttar — använd rekursion och villkor.
- Extrauppgift: låt programmet fråga efter start- och stoppvärde.
- Lösning: [simple_mul_table_recursive.py](../../meta/raw%20course%20dump/D0009E/viewer/files/Lösningar%20till%20övningsuppgifter/f4/simple_mul_table_recursive-1.py)
- Nyckelbegrepp: rekursion, basfall

## Övning F5 – sumTo och sumFromTo (rekursivt)
Koncept: [[Rekursion]], [[Returvärden]], [[Funktioner]]

- `sumTo(n)`: summera alla tal 0..n rekursivt, returnera summan.
- `sumFromTo(start, stop)`: summera start..stop rekursivt.
- `sumToUI()` / `sumFromToUI()`: användargränssnitt (frågar användaren, anropar funktionen, skriver ut svar).
- Lösning: [sumTo_sumFromTo.py](../../meta/raw%20course%20dump/D0009E/viewer/files/Lösningar%20till%20övningsuppgifter/f5/sumTo_sumFromTo-1.py)
- Nyckelbegrepp: rekursion, UI-funktion, returvärde, basfall

## Lab 2 – Rekursion och iteration (deadline: 2026-02-11)
Koncept: [[Rekursion]], [[Vägval]], [[While-loopar]]

- Testskript: d0009e_lab2_bounceTest, d0009e_lab2_sumTest, d0009e_lab2_solveTest
- Uppgifter:
  - `bounce` / `bounce2` — studsrekursion
  - `tvärsumma` — rekursiv tvärsumma av ett heltal
  - `solve` (Newton-Raphson) — numerisk ekvationslösning
  - Menysystem som kombinerar funktionerna (övningsuppgift)
- Nyckelbegrepp: rekursion, iteration, Newton-Raphson, numeriska metoder
- Inlämning: filuppladdning i Canvas + redovisning för handledare
