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. 1
    Pasul 1: Definire funcție int factorial(int n) { if (n <= 1) return 1; else return n * factorial(n-1); }
  2. 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. 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.

Mai multe din Programare