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

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 54: Rad 54:
  
  
<big>
+
<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>].
 
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 översättas till kod:
+
I programmering kan Fibonaccis rekursionsformel direkt översättas till kod.
</big>
+
</big></big>
 
</div>
 
</div>
  

Versionen från 7 januari 2024 kl. 18.52

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

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.

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.