Descrierea proiectului
Vei construi o aplicație de tip meniu interactiv care permite utilizatorului să aleagă o operație de prelucrare numerică, să introducă datele și să primească rezultatele. Aplicația va folosi algoritmii învățați în Modulul 3: operații cu cifrele, oglinditul și palindromul, divizorii, descompunerea în factori primi, CMMDC/CMMMC și conversiile între baze.
Operațiile obligatorii ale aplicației
Aplicația trebuie să ofere cel puțin următoarele operații, selectabile din meniu:
| Nr. | Operație | Algoritm folosit |
|---|---|---|
| 1 | Ultima cifră și eliminarea ultimei cifre | n % 10 și n // 10 |
| 2 | Oglinditul și verificarea palindromului | og = og * 10 + n % 10 |
| 3 | Afișarea divizorilor și numărul lor | n % d == 0, varianta cu radical |
| 4 | Verificarea numărului perfect | suma divizorilor proprii până la n // 2 |
| 5 | Descompunerea în factori primi | împărțiri repetate de la d = 2 |
| 6 | CMMDC și CMMMC | algoritmul lui Euclid |
| 7 | Conversia din baza 10 în baza 2 și invers | resturile împărțirilor la 2 |
Cerințe pe niveluri de notare
Nota 5 - 6: Funcționalitate de bază
- Aplicația conține un meniu simplu și implementează corect cel puțin 3 operații (de exemplu: ultima cifră, oglinditul, divizorii).
- Programul citește datele, calculează rezultatul corect și îl afișează.
- Codul rulează fără erori de sintaxă pentru datele de intrare obișnuite.
- Explicația orală acoperă algoritmul fiecărei operații implementate.
Nota 7 - 8: Validări și meniu complet
- Sunt implementate cel puțin 5 operații din tabelul de mai sus.
- Meniu interactiv care rulează în buclă și permite revenirea la alegerea operației.
- Validarea datelor: numerele negative, 0 acolo unde nu este permis și valorile ne-numerice sunt tratate cu mesaje de eroare clare.
- Tratarea cazurilor particulare: n = 0 la numărarea cifrelor, n = 1 la factori primi, numere prime, pătrate perfecte.
- Afișarea rezultatelor este clară și ușor de citit.
Nota 9 - 10: Modularizare, eficiență și documentație
- Toate cele 7 operații sunt implementate și funcționează corect.
- Fiecare operație este o funcție separată, cu nume sugestiv și comentarii pe pași logici.
- Programul principal este scurt: citește opțiunea și apelează funcția potrivită.
- Variante eficiente: numărul de divizori cu radical, Euclid cu împărțiri, descompunere optimizată.
- Documentație scrisă (fișier .txt sau comentarii în cod): explicația fiecărui algoritm, exemple de rulare și tabelul de testare cu cazuri limită.
- Cod reutilizabil: funcțiile pot fi apelate și din alte programe.
Regula anti-AI și susținerea orală
Condiție obligatorie de notare
Nota se acordă DOAR în urma susținerii orale în fața profesorului, unde elevul explică codul linie cu linie.
- Fiecare elev prezintă programul pe calculator, rulează operațiile cerute și explică raționamentul din spatele fiecărei funcții.
- Profesorul poate cere modificări în timp real (de exemplu: „adaugă validare pentru 0" sau „explică de ce bucla se oprește").
- Elevul care nu poate explica propriul cod nu primește nota, indiferent de calitatea programului predat.
- Codul identic sau aproape identic între elevi duce la repetarea proiectului pentru toți cei implicați.
Recomandare: scrie singur codul, pe etape, verificând fiecare funcție pe rând. Un proiect înțeles cu adevărat se explică ușor, iar susținerea orală devine o discuție, nu un examen.
Criteriile de evaluare
| Criteriu | Ce se verifică | Pondere |
|---|---|---|
| Corectitudinea funcțională | Rezultate corecte pentru toate operațiile, inclusiv cazurile limită | 30% |
| Structura codului | Funcții, comentarii pe pași, nume sugestive, program principal scurt | 20% |
| Validări și tratarea cazurilor | Mesaje de eroare, cazuri particulare, niciun blocaj la date nevalide | 15% |
| Eficiența algoritmilor | Radical la divizori, Euclid cu împărțiri, descompunere optimizată | 15% |
| Documentația | Explicații, exemple de rulare, tabel de teste | 10% |
| Susținerea orală | Explicarea codului linie cu linie și răspunsurile la întrebări | 10% |
Termenul și modalitatea de predare
Termen de predare: a doua săptămână după finalizarea modulului, înainte de ora de informatică.
Modalitate de predare: fișierul Python (proiect_modul3.py) trimis pe platforma clasei, plus susținerea orală în timpul orei. Documentația se predă ca fișier text separat sau ca antet comentat al programului.
Întârzierile: fiecare zi de întârziere nejustificată scade 10% din punctajul documentației. Nepredarea proiectului atrage repetarea modulului.
Sugestii de extindere pentru nota 10
- Conversie generalizată în orice bază b (2 - 16), cu litere pentru cifrele peste 9.
- Verificarea numerelor prietene și afișarea perechilor sub o limită dată.
- Istoricul rezultatelor salvate într-un fișier text la fiecare rulare.
- Statistici pentru un număr: numărul de cifre, suma, produsul, cifra minimă și maximă într-o singură funcție.
- Teste automate: o funcție care verifică automat programul cu un set de date cunoscute.