Recursivitate
Elev: Cozac Romeo Clasa: XI C Prof: Kabai Timea
Notiunea de recursivitate Notiunea de recursivitate din programare deriva in mod natural din notiunea matematica cunoscuta sub numele de recurenta. O functie este recurenta daca este definita prin sine insasi. Recursivitatea se realizeaza prin autoapelul unui subprogram. Altfel spus, in corpul subprogramului apare un apel al subprogramului insusi in timp ce acesta este activ. Pentru ca apelul sa nu se realizeze la infinit, este necesara existenta in subprogram a unei conditii corecte de oprire a acestor apeluri.
Exemplu de problema • Sa se calculeze recursiv n!
Variabile folosite • n - de tip integer, reprezinta numarul citit de la tastatura.
Pentru a calcula o problema recursiva prima data vom stabili o formula care sa cuprinda conditiile posibile si cazul contrar, conditia de oprire.
Cum ar fi in exemplul nostru: 1, daca n=0 {conditia de oprire} n! = factorial (n) = n*factorial(n-1), altfel
De exemplu, pentru a calcula 6!, procedam astfel: 720= 120= 24= 6= 2= 1= 1=
6! = 5! * 6; 5! = 4! * 5; 4! = 3! *4; 3! = 2! * 3; 2! = 1! * 2; 1! = 0! * 1; 0! => STOP
Problema in Limbajul Pascal program factor; var n:integer; function factorial (n : integer) : integer; begin if n=0 then factorial:=1 else factorial:=n * factorial(n-1); end; begin write (‘n= ‘); readln (n); writeln (factorial(n)); readln; end.