A rekurzió Páll Éve Boglárka
Kovács kifog egy aranyhalat a tóból, mire az megszólal: - Teljesítem három kívánságodat, kérj bármit! - Jó! - modja Kovács. - Legyen benned minél kevesebb szálka!
Örök kérdés: Miért nem kéri senki, hogy legyen még három kívánsága?
(3); Procedure (ennyi_kívánságom_van_még); Var Begin if ennyi_kívánságom_van_még = 3 then kérek_valamit if ennyi_kívánságom_van_még = 2 then kérek_valamit if ennyi_kívánságom_van_még = 1 then (3); End;
A Pascalban: A rekurziót alprogramok (eljárások és függvények) segítségével valósítjuk meg. Egy alprogramot rekurzívnak nevezünk, ha meghívja önmagát.
Fontos!!! Minden esetben gondoskodni kell a rekurzió befejeződéséről, mert ellenkező esetben a program végtelen ciklushoz hasonló helyzetbe kerül mivel újabb és újabb önmeghívásokra kerül sor. Erre a célra valamilyen elágazást szokás használni amivel elérhetjük, hogy legalább egyszer végre lehessen hajtani az alporgarot úgy, hogy a végrehajtás során ne hívja meg önmagát.
A matematikában rekurzívnak nevezik az olyan meghatározásokat, amelyek valamilyen módon önmagukat tatrtalmazzák. Pl: a faktoriális rekurzív definíciója: ha n=0 ha n>0
Megoldott Feladatok ha n=1 és n=2 fibo(n) ha n>=3 Írjunk ki a képernyőre 10 darab csillagot! Határozzuk meg a Fibonacci sorozat n-edik tagját. ha n=1 és n=2 fibo(n) ha n>=3
Feladat Számítsuk ki az első n szám összegét rekurzivan Számítsuk ki egy szám n-edik hatványát rekurzivan