Informatică Programare
Ce este recursivitatea in programare 11a?
Recursivitatea în programare este o tehnică în care o funcție se autoapelează direct sau indirect pentru a rezolva o problemă prin împărțirea ei în subprobleme mai mici. Pentru clasa a 11-a, înțelegerea ei implică condiția de oprire și apelurile recursive.
Componentele recursivității
- Condiția de oprire (cazul de bază) Este un caz simplu care nu necesită autoapel, prevenind bucla infinită. Exemplu: factorial(0) = 1.
- Apelul recursiv Funcția se autoapelează cu argumente modificate pentru a reduce problema. Exemplu: factorial(n) = n * factorial(n-1).
- Stiva de apeluri Fiecare autoapel adaugă un cadru pe stivă, consumând memorie; depășirea duce la stack overflow.
Exemplu: calcul factorial
- 1 Pasul 1: Definire funcție int factorial(int n) { if (n <= 1) return 1; else return n * factorial(n-1); }
- 2 Pasul 2: Apel pentru n=4 factorial(4) = 4 * factorial(3) = 4 * 3 * factorial(2) = 4 * 3 * 2 * factorial(1) = 4 * 3 * 2 * 1 = 24.
- 3 Pasul 3: Condiția de oprire Când n=1, funcția returnează 1 fără autoapel, oprirea recursiei.
Exersează scriind o funcție recursivă care calculează suma numerelor de la 1 la n.