Skillnad mellan versioner av "Kap 3 Fortsättning med C Cpp (5)"

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 103: Rad 103:
 
:Bläddra igenom kursboken<span>:</span>
 
:Bläddra igenom kursboken<span>:</span>
 
<math> \qquad\;\;\, </math><div class="smallBox">[http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">Luriga else</span></b>], sid 64.</div><math> \qquad\;\;\, </math>
 
<math> \qquad\;\;\, </math><div class="smallBox">[http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">Luriga else</span></b>], sid 64.</div><math> \qquad\;\;\, </math>
:Kör programmen <math> \;\; </math>[http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">­TrickyElse</span></b>], sid 64.
+
:Kör programmen <math> \;\; </math>[http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">­TrickyElse</span></b>], sid 55.
:och <math> \qquad\qquad\quad\;\; </math>[http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">­CorrectElse</span></b>], sid 66.<math> \quad </math>
+
:och <math> \qquad\qquad\quad\;\; </math>[http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">­CorrectElse</span></b>], sid 57.<math> \quad </math>
 
</big></big>
 
</big></big>
 
</div>
 
</div>
Rad 113: Rad 113:
 
<big><big>
 
<big><big>
 
:Bläddra igenom kursboken, sid 67.<math> \quad </math>
 
:Bläddra igenom kursboken, sid 67.<math> \quad </math>
:Kör programmet [http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">SwitchInequ</span></b>], sid 67-68.<math> \quad </math>
+
:Kör programmet [http://mathonline.se/Boken_Systemutv_Inb_Syst.pdf <b><span style="color:blue">SwitchInequ</span></b>], sid 58-59.<math> \quad </math>
 
</big></big>
 
</big></big>
 
</div>
 
</div>

Versionen från 7 januari 2024 kl. 18.37

 Boken_Systemutv_Inb_Syst       <<  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

Fibonacciproblemet.jpg


Följer man Fibonaccis instruktioner för kaniners fortplantning får man följande siffror:

Fibonaccitalen

Fibonaccitalen.jpg


Mönster för bildningen av Fibonaccis talföljd,

även kallad Fibonaccitalen:


Summan av två på varandra följande
fibonaccital ger nästa fibonaccital.

\( \qquad\qquad\qquad \) FibonacciBildb.jpg


Fibonaccis rekursionsformel

FibonacciRekFormel.jpg


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.

Fib.jpg

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

Ber kompexitet.jpg


3.7   Mer om flervägsval

Bläddra igenom kursboken:
\( \qquad\;\;\, \)
Luriga else, sid 64.
\( \qquad\;\;\, \)
Kör programmen \( \;\; \)­TrickyElse, sid 55.
och \( \qquad\qquad\quad\;\; \)­CorrectElse, sid 57.\( \quad \)


switch med tomma case-satser

Bläddra igenom kursboken, sid 67.\( \quad \)
Kör programmet SwitchInequ, sid 58-59.\( \quad \)



Gå vidare till:        när du är klar med denna genomgång.










Copyright © 2024 TechPages AB. All Rights Reserved.