Școala Româno-Britanică Clasa a X-a | C++
MODULUL 5

Subprograme recursive și evaluare finală

Învață să definești și să apelezi subprograme recursive în C++, să analizezi mecanismul stivei de apeluri și să aplici recursivitatea în probleme clasice. Ultimul modul aduce recapitularea materiei, proiecte integrate și evaluarea sumativă.

14 ore de învățare
Competențe 1.5, 2.5, 3.5, 4.5, 5.5
Limbaj: C++
30+ exerciții practice
ORA 1

Recursivitatea - concept și mecanism de executare

Funcție recursivă, caz de bază, pas recursiv, stiva apelurilor

Competența 1.5
Săptămâna 25

Ce vei învăța:

  • Ce este o funcție recursivă
  • Cazul de bază și pasul recursiv
  • Mecanismul stivei de apeluri
  • Primul program recursiv în C++
ORA 2

Factorialul recursiv

factorial(n) = n * factorial(n-1), caz de bază 0! = 1

Competența 2.5
Săptămâna 25

Ce vei învăța:

  • Definiția recursivă a factorialului
  • Urmărirea apelurilor pe stivă
  • Comparația cu varianta iterativă
  • Program complet C++
ORA 3

Suma cifrelor unui număr - recursiv

suma_cifre(n) = n % 10 + suma_cifre(n / 10)

Competența 3.5
Săptămâna 26

Ce vei învăța:

  • Descompunerea unui număr în cifre
  • Definiția recursivă a sumei cifrelor
  • Operațiile modulo și împărțire întreagă
  • Program complet C++
ORA 4

Șirul lui Fibonacci recursiv

fib(n) = fib(n-1) + fib(n-2), discuție despre eficiență

Competența 3.5
Săptămâna 26

Ce vei învăța:

  • Definiția șirului lui Fibonacci
  • Implementarea recursivă
  • Analiza eficienței: apeluri repetate
  • Comparație cu varianta iterativă
ORA 5

CMMDC recursiv - algoritmul lui Euclid

cmmdc(a, b) = cmmdc(b, a % b), caz de bază b == 0

Competența 4.5
Săptămâna 27

Ce vei învăța:

  • Algoritmul lui Euclid
  • Definiția recursivă a CMMDC
  • Cazul de bază b == 0
  • Aplicații: fracții ireductibile
ORA 6

Turnurile din Hanoi

Problema clasică, numărul de mutări 2^n - 1

Competența 4.5
Săptămâna 27

Ce vei învăța:

  • Enunțul problemei Turnurile din Hanoi
  • Rezolvarea recursivă pas cu pas
  • Numărul de mutări: 2^n - 1
  • Program complet C++
ORA 7

Recursivitate pe șiruri și vectori

Afișarea inversă a unui șir, suma elementelor unui vector

Competența 5.5
Săptămâna 28

Ce vei învăța:

  • Afișarea inversă a unui șir recursiv
  • Parcurgerea recursivă a unui vector
  • Suma elementelor unui vector recursiv
  • Aplicații practice
ORA 8

Proiect integrat: aplicație recursivă

Meniu cu factorial, suma cifrelor, Fibonacci, CMMDC

Competența 6.5
Săptămâna 28

Ce vei învăța:

  • Combinarea mai multor funcții recursive
  • Meniu de aplicație în consolă
  • Citirea opțiunii și validarea ei
  • Proiect integrat complet
ORA 9

Recapitulare generală

Tabel rezumativ pe module, recapitulare și exerciții

Competența 6.5
Săptămâna 29

Ce vei învăța:

  • Recapitularea materiei pe module
  • Tabel rezumativ Modulul 1-5
  • Exemple de rezolvare
  • Program de recapitulare C++
ORA 10

Test final sumativ

Structura testului, barem, probleme de test

Competența 6.5
Săptămâna 29

Ce vei învăța:

  • Structura testului sumativ
  • Baremul de evaluare
  • Rezolvarea problemelor de test
  • Sfaturi pentru examen
ORA 11

Recursivitate pe matrice - aplicații

Suma elementelor unei matrice recursiv, parcurgerea liniilor

Competența 6.5
Săptămâna 30

Ce vei învăța:

  • Parcurgerea recursivă a unei matrice
  • Suma elementelor unei matrice recursiv
  • Afișarea matricei cu două funcții imbricate
  • Program complet C++ stil BAC
ORA 12

Proiect integrat recursiv

Aplicație completă cu mai multe funcții recursive și meniu

Competența 6.5
Săptămâna 30

Ce vei învăța:

  • Arhitectura unui proiect modular
  • Cinci funcții recursive integrate
  • Meniu interactiv cu validări
  • Proiect complet stil BAC
ORA 13

Recapitulare generală a clasei a X-a

Recapitulare pe toate modulele + tabel rezumativ mare

Competența 6.5
Săptămâna 31

Ce vei învăța:

  • Harta materiei pe cele cinci module
  • Tabelul rezumativ mare al funcțiilor
  • Probleme integrate de recapitulare
  • Program C++ complet de recapitulare
ORA 14

Evaluare finală sumativă

Structura evaluării finale, barem, problemă integrată

Competența 6.5
Săptămâna 31

Ce vei învăța:

  • Structura evaluării finale sumative
  • Baremul de notare
  • Problema integrată rezolvată
  • Strategia de rezolvare

Resursele modulului

Competențe dobândite

Competența 1.5

Identificarea elementelor de sintaxă din definiția și apelul subprogramelor recursive

  • Structura unei funcții recursive: antet, corp, apel
  • Cazul de bază și pasul recursiv
  • Tipuri de date și valori returnate
  • Identificarea recurenței într-o problemă

Competența 2.5

Explicarea mecanismului de executare a subprogramelor recursive

  • Stiva apelurilor și ordinea de executare
  • Cazul de bază: oprirea recurenței
  • Factorialul: 0! = 1 ca caz de bază
  • Urmărirea pas cu pas a apelurilor

Competența 3.5

Utilizarea subprogramelor recursive în rezolvarea de probleme

  • Factorialul recursiv
  • Suma cifrelor unui număr
  • Șirul lui Fibonacci
  • Aplicații numerice în C++

Competența 4.5

Analiza utilizării subprogramelor recursive

  • Eficiența recursivității: Fibonacci
  • Algoritmul lui Euclid recursiv
  • Turnurile din Hanoi: 2^n - 1 mutări
  • Comparație cu variantele iterative

Competența 5.5

Evaluarea programelor recursive și integrarea lor în proiecte

  • Recursivitate pe vectori și șiruri
  • Proiect integrat cu funcții recursive
  • Recapitularea materiei pe module
  • Rezolvarea testului sumativ