Descrierea temei
Construiești o aplicație Python numită „Calculator personal de medii". Aplicația primește notele unui elev și calculează, după alegerea utilizatorului: media aritmetică a unui set de note, media cu teze (media aritmetică a notelor și a tezei, după regula 3:1) și media generală pe mai multe materii.
Proiectul îți cere să aplici toate conceptele modulului: algoritmi, pseudocod, variabile, decizii, bucle, testare și eficiență.
De ce această temă?
Media notelor este un algoritm pe care îl folosești în fiecare zi, dar îl calculezi mental sau pe calculator de buzunar. Acum îl vei transforma într-un program propriu: vei înțelege exact ce calcule se fac, vei valida datele introduse și vei obține rezultate exacte, indiferent câte note ai introduce.
Cerințe pe niveluri de note
| Nivel de notă | Cerințe | Exemple de realizare |
|---|---|---|
| Nota 5-6 Funcționalitate de bază |
|
„Media a trei note" - exact modelul din lecții |
| Nota 7-8 Validări și mai mulți algoritmi |
|
Meniu cu if/elif, buclă while pentru citire, try/except pentru date greșite |
| Nota 9-10 Modularizare și documentație |
|
Funcții precum media_aritmetica(), validare_nota(), afisare_meniu() |
Regula anti-AI - OBLIGATORIU DE CITIT
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.
- Un program care nu poate fi explicat de autor nu primește punctaj, indiferent cât de complex este.
- Utilizarea inteligenței artificiale pentru a genera codul este permisă doar ca material de studiu; codul predat trebuie să fie înțeles și rescris de tine.
- La susținere vei fi întrebat: de ce ai ales această structură, ce se întâmplă la o anumită linie, ce rezultat dă programul pentru datele propuse de profesor.
- Dacă nu poți răspunde la întrebări despre orice linie din program, proiectul nu va fi acceptat.
Criteriile de evaluare
| Criteriu | Ce se urmărește |
|---|---|
| Corectitudinea algoritmilor | Media este calculată exact, pentru toate datele valide |
| Respectarea etapelor | Analiză, pseudocod, implementare, testare, depanare - toate documentate |
| Validarea datelor | Notele greșite sunt respinse cu mesaje clare |
| Modularizarea | Programul este împărțit în funcții cu sarcini unice |
| Documentația | Comentarii, explicații, tabel de teste cu date valide/invalide/limită |
| Susținerea orală | Explicarea linie cu linie și răspunsuri corecte la întrebări |
Termenul de predare și formatul livrabilului
Termen de predare: ultima zi a Săptămânii 5. Proiectele predate cu întârziere se punctează cu 2 puncte mai puțin.
Livrabilul conține, într-un singur dosar:
- fișierul
proiect_medii.pycu programul complet, comentat; - documentul cu analiza problemei și algoritmii în pseudocod;
- tabelul de teste (date valide, invalide, cazuri limită) cu rezultatele așteptate și obținute.
Scheletul programului pentru nota 7-8
Structura recomandată
Acest schelet te ajută să începi; trebuie completat, comentat și testat de tine
Programul de plecare (exemplu comentat)
Cerință: Completează și extinde acest program, apoi explică fiecare linie la susținere.
# Proiect Modulul 1 - Calculator personal de medii
# Autor: [numele tău] | Clasa a IX-a
def citeste_nota():
"""Citește și validează o notă între 1 și 10."""
nota = int(input("Introdu nota: "))
if nota < 1 or nota > 10:
print("Nota trebuie să fie între 1 și 10!")
return citeste_nota()
return nota
def media_aritmetica(note_lista):
"""Calculează media aritmetică a notelor din listă."""
suma = 0
for nota in note_lista:
suma += nota
return suma / len(note_lista)
# Secțiunea principală: meniul aplicației
print("CALCULATOR PERSONAL DE MEDII")
print("1. Media aritmetică")
print("2. Media cu teză")
optiune = int(input("Alege: "))
if optiune == 1:
nr = int(input("Câte note? "))
note = []
for i in range(nr):
note.append(citeste_nota())
print("Media este:", media_aritmetica(note))
elif optiune == 2:
print("Media cu teză - pentru nota 8-10")
else:
print("Opțiune invalidă!")
Observă: programul folosește funcții (modularizare), validare cu if, buclă for și o listă. Pentru nota 9-10 trebuie să adaugi funcția pentru media cu teză, media generală și documentația completă.