Kap 3 Fortsättning med C Cpp (5)

Från Mathonline
Hoppa till: navigering, sök
        <<  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() anropas i huvudprogrammet FibonacciTest med vanligt funktionsanrop, inte rekursivt.


Programmet FibonacciTest

FibTesta.jpg


Beräkningskompexitet

Ber kompexitet.jpg


3.7   Mer om flervägsval

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


switch med tomma case-satser

Bläddra igenom kursboken, sid 56.\( \quad \)
Kör programmet SwitchInequ, sid 56-57.\( \quad \)



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










Copyright © 2024 TechPages AB. All Rights Reserved.