Skillnad mellan versioner av "Kap 3 Fortsättning med C Cpp (5)"
Från Mathonline
Taifun (Diskussion | bidrag) (Skapade sidan med ' = <b><span style="color:#931136">3.8 Mer om flervägsval</span></b> = <div class="ovnE"> <big><big> :Bläddra igenom kursboken<span>:</span> <math> \qquad\;\;\, </ma...') |
Taifun (Diskussion | bidrag) m |
||
| (49 mellanliggande versioner av samma användare visas inte) | |||
| Rad 1: | Rad 1: | ||
| + | __NOTOC__ | ||
| + | {| border="0" cellspacing="0" cellpadding="0" height="30" width="100%" | ||
| + | | style="border-bottom:1px solid #797979" width="5px" | | ||
| + | {{Not selected tab|[[Lektion 5 (Inbyggd 24)| << Agenda]]}} | ||
| + | {{Selected tab|[[Kap 3 Fortsättning med C_Cpp (5)|Genomgång 5]]}} | ||
| + | {{Not selected tab|[[Övningar 5 (Inbyggd 24)|Övningar 5]]}} | ||
| + | {{Not selected tab|[https://sharedfiles.mathonline.se/Systemutv_Inb_Syst_Inneh_Struktur.pdf Innehåll_&_struktur]}} | ||
| + | {{Not selected tab|[[Lektion 6 (Inbyggd 24)|Nästa lektion >> ]]}} | ||
| + | | style="border-bottom:1px solid #797979" width="100%"| | ||
| + | |} | ||
| + | <br> | ||
| + | = <b><span style="color:#931136">3.6 Rekursion</span></b> = | ||
| + | <div class="ovnC"> | ||
| + | === <b><span style="color:#931136">Vad är rekursion?</span></b> === | ||
| + | <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>. | ||
| + | * 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. | ||
| + | * I programmering har vi hittills realiserat upprepning med loopar (iteration). | ||
| + | * Rekursion är ett alternativ till iteration. | ||
| + | </big></big> | ||
| + | </div> | ||
| + | = <b><span style="color:#931136">Ett exempel: Fibonaccis problem</span></b> = | ||
| + | <div class="ovnA"> | ||
| + | == <b><span style="color:#931136">Kaniners fortplantning</span></b> == | ||
| + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Fibonacciproblemet.jpg]]</div> | ||
| + | <big><big>Följer man Fibonaccis instruktioner för kaniners fortplantning får man följande siffror:</big></big> | ||
| + | == <b><span style="color:#931136">Fibonaccitalen</span></b> == | ||
| + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Fibonaccitalen.jpg]]</div> | ||
| + | <table> | ||
| + | <tr> | ||
| + | <td><big><big><b><span style="color:red">Mönster</span></b> för bildningen av Fibonaccis talföljd, <br><br> även kallad <b>Fibonaccitalen:</b></big></big> <br><br> <div class="border-divblue"> | ||
| + | <big><b>Summan av två på varandra följande <br> fibonaccital ger nästa fibonaccital.</b></big> | ||
| + | </div> | ||
| + | </td> | ||
| + | <td><math> \qquad\qquad\qquad </math></td> | ||
| + | <td>[https://sv.wikipedia.org/wiki/Leonardo_Fibonacci [[Image: FibonacciBildb.jpg]]]</td> </tr> | ||
| + | </table> | ||
| + | </div> | ||
| − | = <b><span style="color:#931136">3. | + | |
| + | = <b><span style="color:#931136">Fibonaccis rekursionsformel</span></b> = | ||
| + | <div class="ovnE"> | ||
| + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: FibonacciRekFormel.jpg]]</div> | ||
| + | |||
| + | |||
| + | <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>]. | ||
| + | |||
| + | I programmering kan Fibonaccis rekursionsformel direkt översättas till kod. | ||
| + | </big></big> | ||
| + | </div> | ||
| + | |||
| + | |||
| + | = <b><span style="color:#931136">Rekursiva funktionen fib()</span></b> = | ||
| + | <div class="ovnC"> | ||
| + | |||
| + | <big>Vi kodar Fibonaccis rekursionsformel i C++ som en <b><span style="color:red">rekursiv funktion fib()</span></b>. | ||
| + | |||
| + | En <b><span style="color:red">funktion</span></b> 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: fib.jpg]]</div> | ||
| + | |||
| + | |||
| + | <big>Funktionen <b><span style="color:red">fib()</span></b> anropas i huvudprogrammet <b><span style="color:red">FibonacciTest</span></b> med vanligt funktionsanrop, inte rekursivt. | ||
| + | </big> | ||
| + | </div> | ||
| + | |||
| + | |||
| + | = <b><span style="color:#931136">Programmet FibonacciTest</span></b> = | ||
| + | <div class="ovnE"> | ||
| + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: FibTesta.jpg]]</div> | ||
| + | </div> | ||
| + | |||
| + | |||
| + | = <b><span style="color:#931136">Beräkningskompexitet</span></b> = | ||
| + | <div class="ovnA"> | ||
| + | <div style="border:1px solid black;display:inline-table;margin-left: 0px;"> [[Image: Ber_kompexitet.jpg]]</div> | ||
| + | </div> | ||
| + | |||
| + | |||
| + | = <b><span style="color:#931136">3.7 Mer om flervägsval</span></b> = | ||
<div class="ovnE"> | <div class="ovnE"> | ||
<big><big> | <big><big> | ||
:Bläddra igenom kursboken<span>:</span> | :Bläddra igenom kursboken<span>:</span> | ||
| − | <math> \qquad\;\;\, </math><div class="smallBox">[ | + | <math> \qquad\;\;\, </math><div class="smallBox">[https://sharedfiles.mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">Luriga else</span></b>], sid 53.</div><math> \qquad\;\;\, </math> |
| − | :Kör programmen <math> \;\; </math>[ | + | :Kör programmen <math> \;\; </math>[https://sharedfiles.mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">TrickyElse</span></b>], sid 53. |
| − | :och <math> \qquad\qquad\quad\;\; </math>[ | + | :och <math> \qquad\qquad\quad\;\; </math>[https://sharedfiles.mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">CorrectElse</span></b>], sid 55.<math> \quad </math> |
</big></big> | </big></big> | ||
</div> | </div> | ||
| Rad 23: | Rad 104: | ||
<div class="ovnC"> | <div class="ovnC"> | ||
<big><big> | <big><big> | ||
| − | :Bläddra igenom kursboken, sid | + | :Bläddra igenom kursboken, sid 56.<math> \quad </math> |
| − | :Kör programmet [ | + | :Kör programmet [https://sharedfiles.mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">SwitchInequ</span></b>], sid 56-57.<math> \quad </math> |
</big></big> | </big></big> | ||
</div> | </div> | ||
| + | |||
| + | <br><br> | ||
| + | |||
| + | <div class="border-divblue"> | ||
| + | === <b><span style="color:#931136">Gå vidare till: <div class="smallBox">[[Övningar 5 (Inbyggd 24)|<span style="color:blue">Övningar 5</span>]]</div> när du är klar med denna genomgång.</span></b> === | ||
| + | </div> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <br> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | [[Matte:Copyrights|Copyright]] © 2024 TechPages AB. All Rights Reserved. | ||
Nuvarande version från 11 september 2024 kl. 07.09
| << 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.
I programmering kan Fibonaccis rekursionsformel 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() anropas i huvudprogrammet FibonacciTest med vanligt funktionsanrop, inte rekursivt.
Programmet FibonacciTest
Beräkningskompexitet
3.7 Mer om flervägsval
- Bläddra igenom kursboken:
Luriga else, sid 53.
\( \qquad\;\;\, \)
- Kör programmen \( \;\; \)TrickyElse, sid 53.
- och \( \qquad\qquad\quad\;\; \)CorrectElse, sid 55.\( \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.






