Skillnad mellan versioner av "Kap 3 Fortsättning med C Cpp (5)"
Från Mathonline
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) m |
||
Rad 15: | Rad 15: | ||
<div class="ovnC"> | <div class="ovnC"> | ||
=== <b><span style="color:#931136">Vad är rekursion?</span></b> === | === <b><span style="color:#931136">Vad är rekursion?</span></b> === | ||
− | |||
<big><big> | <big><big> | ||
* <b><span style="color:red">Rekursion</span></b> är ett koncept inom problemlösning och programmering som tillämpar <b><span style="color:red">successiv upprepning</span></b>. | * <b><span style="color:red">Rekursion</span></b> är ett koncept inom problemlösning och programmering som tillämpar <b><span style="color:red">successiv upprepning</span></b>. | ||
− | + | * Ordet rekursion kommer från det latinska <i>recurrere</i> som betyder <b><span style="color:red">att köra igen</span></b>, vilket innebär: | |
− | + | * I en algoritm återvänder man till tidigare steg och <b><span style="color:red">upprepar</span></b> ett känt förlopp, | |
− | Ordet rekursion kommer från det latinska <i>recurrere</i> som betyder <b><span style="color:red">att köra igen</span></b>, vilket innebär: | + | |
− | + | ||
− | + | ||
− | I en algoritm återvänder man till tidigare steg och <b><span style="color:red">upprepar</span></b> ett känt förlopp, | + | |
ofta med andra parametrar. | ofta med andra parametrar. | ||
− | + | * I programmering har vi hittills realiserat upprepning med loopar (iteration). Rekursion är ett alternativ till iteration. | |
− | + | ||
− | I programmering har vi hittills realiserat upprepning med loopar (iteration). Rekursion är ett alternativ till iteration. | + | |
</big></big> | </big></big> | ||
</div> | </div> |
Versionen från 7 januari 2024 kl. 18.48
<< Agenda | Genomgång 5 | Övningar 5 | Innehåll & struktur | Nästa lektion >> |
3.6 Rekursion
Vad är rekursion?
- Rekursion är ett koncept inom problemlösning och programmering som tillämpar successiv upprepning.
- Ordet rekursion kommer från det latinska recurrere som betyder att köra igen, vilket innebär:
- I en algoritm återvänder man till tidigare steg och upprepar ett känt förlopp,
ofta med andra parametrar.
- I programmering har vi hittills realiserat upprepning med loopar (iteration). Rekursion är ett alternativ till iteration.
Ett exempel: Fibonaccis problem
Kaniners fortplantning
Följer man Fibonaccis instruktioner för kaniners fortplantning får man följande siffror:
Fibonaccitalen
Mönster för bildningen av Fibonaccis talföljd, även kallad Fibonaccitalen: Summan av två på varandra följande |
\( \qquad\qquad\qquad \) | ![]() |
Fibonaccis rekursionsformel
Om en matematisk behandling av Fibonacciproblemet kan du läsa här.
Fibonaccis rekursionsformel kan direkt översättas till kod:
Rekursiva funktionen fib()
Vi kodar Fibonaccis rekursionsformel i C++ som en rekursiv funktion fib().
En funktion kallas för rekursiv om den anropar sig själv i sin egen definition.
Funktionen fib() anropar sig själv två gånger i sin egen definition: rekursiva anrop!
Anropet i huvudprogrammet däremot är ett vanligt (inte rekursivt) funktionsanrop.
Programmet FibonacciTest
Beräkningskompexitet
3.7 Mer om flervägsval
- Bläddra igenom kursboken:
Luriga else, sid 64.
\( \qquad\;\;\, \)
- Kör programmen \( \;\; \)TrickyElse, sid 55.
- och \( \qquad\qquad\quad\;\; \)CorrectElse, sid 57.\( \quad \)
switch med tomma case-satser
Gå vidare till: när du är klar med denna genomgång.
Copyright © 2024 TechPages AB. All Rights Reserved.