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

Proiect final - Modulul 5

Tema proiectului: Aplicație C++ modulară completă cu funcții recursive: calculator de prelucrări numerice și de text

Scopul: Demonstrezi că poți proiecta, implementa, testa și explica o aplicație C++ completă, folosind funcții recursive, structuri de date și un meniu interactiv, conform standardului BAC.

Competența 6.5 Predare: Săptămâna 36
SPECIFICAȚIA PROIECTULUI FINAL

Descrierea proiectului

Tema: Aplicație C++ modulară completă cu funcții recursive: calculator de prelucrări numerice și de text. Aplicația afișează un meniu interactiv cu cel puțin următoarele opțiuni:

Opțiune Prelucrare Funcție cerută
1 Factorialul unui număr natural factorial(n) recursiv
2 Termenul n din șirul lui Fibonacci fib(n) recursiv
3 CMMDC a două numere cmmdc(a, b) recursiv
4 Suma cifrelor unui număr suma_cifre(n) recursiv
5 Inversarea unui șir de caractere inversare_sir(s, i, j) recursiv
6 Verificarea dacă un șir este palindrom palindrom(s, i, j) recursiv
0 Ieșire din aplicație -

Cerințe obligatorii pentru toate notele

  • Sintaxa BAC completă: #include, using namespace std;, funcții înainte de main, return 0;.
  • Meniul interactiv cu structura do...while.
  • Fiecare funcție recursivă are caz de bază și pas recursiv corect, comentată pe pași logici.
  • Programul compilează fără erori și rulează corect pe toate exemplele din enunț.
  • Verificarea programului în fața profesorului, cu explicarea linie cu linie a codului.

Nivelurile de notare - cerințe pe niveluri

Nivel Cerințe pentru notă Funcții cerute
Nota 5-6 Funcționalitate de bază: meniu funcțional, cel puțin o funcție recursivă corectă, citirea și afișarea datelor, sintaxă BAC corectă. Aplicația rulează și produce rezultate corecte pentru exemplele simple. factorial + meniu (minim)
Nota 7-8 Mai multe funcții recursive (cel puțin patru: factorial, Fibonacci, CMMDC, suma cifrelor) + validări complete ale intrărilor (opțiuni inexistente, n negativ, valori care depășesc domeniul) + tratarea corectă a cazurilor limită (n = 0, n = 1). 4+ funcții recursive + validări
Nota 9-10 Modularizare avansată (funcții separate pentru citire validată, afișare meniu, prelucrări), eficiență (Fibonacci iterativ sau cu memoizare, comentarii care justifică alegerile de complexitate), documentație completă (descrierea aplicației, scheme logice sau pseudocod pentru fiecare funcție, exemple de rulare, concluzii) și susținere orală excelentă, cu răspunsuri corecte la întrebări despre mecanismul stivei și eficiența algoritmilor. 6 funcții + validări + documentație

Interpretare: nota finală se acordă pe baza întregii lucrări: codul, comportamentul programului, documentația și susținerea orală. Un program corect dar fără validări se încadrează la nivelul 5-6, indiferent de numărul de funcții scrise.

Criteriile de evaluare detaliate

Criteriu Ce verifică profesorul Pondere
Corectitudinea codului Programul compilează și produce rezultatele așteptate pe toate exemplele, inclusiv cazurile limită 30%
Corectitudinea funcțiilor recursive Caz de bază corect, pas recursiv corect, tip de return potrivit (long long unde e nevoie) 25%
Modularizarea și stilul Funcții cu o singură responsabilitate, nume sugestive, comentarii pe pași logici, cod lizibil 15%
Validările și robustețea Tratarea opțiunilor inexistente și a valorilor invalide, fără blocări 10%
Documentația Descrierea aplicației, pseudocodul funcțiilor, exemple de rulare, concluzii 10%
Susținerea orală Explicarea codului linie cu linie, răspunsuri la întrebări despre stivă, caz de bază, eficiență 10%

Reguli anti-AI - citire obligatorie

Nota se acordă DOAR în urma susținerii orale în fața profesorului, unde elevul explică codul linie cu linie și răspunde la întrebări despre funcționarea programului.

  • Proiectul predat fără susținere orală nu primește notă, indiferent de calitatea codului.
  • Elevul trebuie să poată explica orice linie din program: de ce există, ce face și ce se întâmplă dacă lipsește.
  • Elevul trebuie să poată modifica codul la cererea profesorului (de exemplu, să adauge o funcție sau să schimbe un caz de bază) și să explice efectul modificării.
  • Codul generat integral de instrumente de inteligență artificială și neînțeles de elev este considerat nepredat și se tratează conform regulamentului privind integritatea academică.
  • Întrebările de susținere pot viza: mecanismul stivei de apeluri, diferența dintre recursivitate și iterație, complexitatea funcțiilor și motivul pentru care fiecare funcție are exact cazul de bază scris.

Termenul de predare și pașii de lucru

Termen de predare: săptămâna 36, la ora de informatică, în format digital (fișierul .cpp și documentația). Susținerea orală are loc în aceeași zi, în fața profesorului.

Pașii recomandați pentru realizare

  • Pasul 1: proiectează pe hârtie meniul și lista funcțiilor cu cazurile lor de bază.
  • Pasul 2: scrie și testează fiecare funcție recursivă separat, cu exemplele din sinteza modulului.
  • Pasul 3: integrează funcțiile în meniul do...while și adaugă validările.
  • Pasul 4: testează toate opțiunile, inclusiv valorile limită (n = 0, n = 1) și opțiunile inexistente.
  • Pasul 5: scrie documentația: descriere, pseudocod, exemple de rulare, concluzii.
  • Pasul 6: antrenează-te pentru susținere: explică-ți codul cu voce tare, linie cu linie.

Sugestie de structură a documentației: (1) prezentarea aplicației și a meniului; (2) pseudocodul fiecărei funcții recursive; (3) explicația mecanismului de executare pentru o valoare de test; (4) exemple de rulare; (5) concluzii și posibile extinderi.

Rezumat pentru caiet

Ce trebuie predat

  • Fișierul sursă C++ (.cpp) care compilează fără erori.
  • Documentația proiectului (tipărită sau digitală).
  • Susținerea orală obligatorie, cu explicarea codului linie cu linie.

Formula de notă

  • Nota 5-6: o funcție recursivă corectă + meniu funcțional + sintaxă BAC.
  • Nota 7-8: patru funcții recursive + validări complete + cazuri limită.
  • Nota 9-10: șase funcții + modularizare avansată + eficiență + documentație completă + susținere excelentă.

Regula de aur

  • Nota se acordă DOAR în urma susținerii orale: înțelegerea codului este condiția obligatorie pentru notare.