Skillnad mellan versioner av "Kap 3 Fortsättning med C Cpp (5)"
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) m |
||
| Rad 62: | Rad 62: | ||
<big> | <big> | ||
| − | + | Om en matematisk behandling av Fibonacciproblemet kan du läsa [http://34.248.89.132:1800/index.php?title=1.5_Kontinuerliga_och_diskreta_funktioner#Exempel_3_Fibonaccis_problem <b><span style="color:blue">här</span></b>]. | |
| − | Fibonaccis rekursionsformel kan direkt | + | Fibonaccis rekursionsformel kan direkt översättas till C++: |
</big> | </big> | ||
</div> | </div> | ||
| − | = <b><span style="color:#931136"> | + | = <b><span style="color:#931136">Rekursiva funktionen fib()</span></b> = |
| − | <div class=" | + | <div class="ovnE"> |
| − | <big>I | + | <big>I C++ kan Fibonaccis rekursionsformel kodas som en <b><span style="color:red">rekursiv funktion fib()</span></b>. |
En funktion kallas för <b><span style="color:red">rekursiv</span></b> om den anropar sig själv i sin egen definition. | En funktion kallas för <b><span style="color:red">rekursiv</span></b> om den anropar sig själv i sin egen definition. | ||
</big> | </big> | ||
| − | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: | + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: fib.jpg]]</div> |
| − | <big>Funktionen <b><span style="color:red">fib()</span></b> anropar sig själv två gånger i sin definition | + | <big>Funktionen <b><span style="color:red">fib()</span></b> anropar sig själv två gånger i sin egen definition: <b><span style="color:red">rekursiva anrop!</span></b> |
| − | Anropet | + | Anropet i huvudprogrammet är ett vanligt (inte rekursivt) funktionsanrop. |
</big> | </big> | ||
</div> | </div> | ||
| − | + | ||
| − | <div class=" | + | = <b><span style="color:#931136">Programmet FibonacciTest</span></b> = |
| − | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: | + | <div class="ovnE"> |
| + | |||
| + | <big>I Python kan Fibonaccis rekursionsformel kodas som en <b><span style="color:red">rekursiv funktion fib()</span></b>. | ||
| + | |||
| + | En funktion kallas för <b><span style="color:red">rekursiv</span></b> om den anropar sig själv i sin egen definition. | ||
| + | </big> | ||
| + | |||
| + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: FibTest.jpg]]</div> | ||
| + | |||
| + | <big>Funktionen <b><span style="color:red">fib()</span></b> anropar sig själv två gånger i sin definition på rad 9: <b><span style="color:red">rekursiva anrop!</span></b> | ||
| + | |||
| + | Anropet i huvudprogrammet är ett vanligt (inte rekursivt) funktionsanrop. | ||
| + | </big> | ||
</div> | </div> | ||
| − | = <b><span style="color:#931136">3. | + | = <b><span style="color:#931136">3.7 Mer om flervägsval</span></b> = |
<div class="ovnE"> | <div class="ovnE"> | ||
<big><big> | <big><big> | ||
Versionen från 7 januari 2024 kl. 17.13
| << 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 C++:
Rekursiva funktionen fib()
I C++ kan Fibonaccis rekursionsformel kodas 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 är ett vanligt (inte rekursivt) funktionsanrop.
Programmet FibonacciTest
I Python kan Fibonaccis rekursionsformel kodas 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 definition på rad 9: rekursiva anrop!
Anropet i huvudprogrammet är ett vanligt (inte rekursivt) funktionsanrop.
3.7 Mer om flervägsval
- Bläddra igenom kursboken:
- Kör programmen \( \;\; \)TrickyElse, sid 64.
- och \( \qquad\qquad\quad\;\; \)NestdIfElse, sid 66.\( \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.




