Proiect Final

Proiect: Catalog note

Aplica tot ce ai invatat intr-un proiect practic cu structuri repetitive!

Progres lectie:
0%
🎯

Obiectivul proiectului

"Vei crea un algoritm complet care prelucreaza note citite pe rand si afiseaza statistici utile: suma, media, nota maxima, nota minima si daca elevul este promovat!"

Dupa aceasta lectie vei putea:

  • Sa explici proiectul: catalog de note
  • Sa explici pasul 1: citirea notelor cu structura PENTRU
  • Sa utilizezi pasul 2: calculul sumei, maximului si minimului intr-o singura parcurgere
  • Sa aplici pasul 3: calculul mediei si numararea notelor peste medie
  • Sa aplici pasul 4: afisarea rezultatelor finale
πŸ“š
Conformitate cu programa cls. VII (OMEN 3393/2017)

Acest proiect foloseste exclusiv structuri prevazute la clasa a VII-a: structura liniara, structura alternativa (DACA-ATUNCI-ALTFEL) si structura repetitiva cu contor (PENTRU…EXECUTA), aplicate pe variabile scalare. Notele sunt citite si prelucrate pe rand, fara a fi memorate intr-un sir (sirurile de valori sunt materie de clasa a VIII-a).

1

Proiectul: Catalog de note

Vom crea un program care analizeaza notele unui elev la o materie si calculeaza statistici. Notele sunt citite una cate una, in bucla PENTRU, fara a fi memorate β€” calculele se fac pe loc, folosind variabile acumulatoare.

πŸ“Š Cerinte proiect:
  • Citeste n note ale elevului, una cate una
  • Calculeaza suma notelor (acumulator)
  • Calculeaza media aritmetica
  • Gaseste nota maxima si minima (comparare pe rand)
  • Numara cate note sunt peste medie
  • Afiseaza daca elevul este promovat (media β‰₯ 5)
Ce facem prima data intr-un algoritm cu structura repetitiva?
A Calculam media
B Citim dimensiunea (n) si initializam variabilele acumulatoare
C Afisam rezultatele
2

Pasul 1: Citirea datelor si initializarea

Incepem prin a citi cate note are elevul, initializam variabilele acumulatoare cu prima nota, apoi citim restul in bucla:

SCRIE ("Cate note are elevul? ")
CITESTE n

// Citim prima nota si initializam maximul si minimul
SCRIE ("Nota 1: ")
CITESTE nota
suma = nota
maxim = nota
minim = nota

// Citim restul notelor, de la 2 la n
PENTRU i = 2 , n EXECUTA
SCRIE ("Nota ", i , ": ")
CITESTE nota
suma = suma + nota
DACA nota > maxim ATUNCI
maxim = nota
SFARSIT_DACA
DACA nota < minim ATUNCI
minim = nota
SFARSIT_DACA
SFARSIT_PENTRU

De ce citim prima nota separat?

Deoarece maximul si minimul trebuie initializate cu o valoare reala, nu cu 0 sau 999. Prima nota este cea mai buna alegere: garanteaza ca maximul si minimul sunt valori reale din datele de intrare.

Cand citim notele una cate una, ce structura folosim?
A DACA-ATUNCI
B PENTRU (bucla cu contor)
C Nu folosim nimic special
3

Pasul 2: Suma, maximul si minimul β€” intr-o singura parcurgere

In codul de mai sus, am calculat deja suma, maximul si minimul in aceeasi bucla: citim nota β†’ o adaugam la suma β†’ comparam cu maximul β†’ comparam cu minimul. O singura parcurgere, trei calcule.

Exemplu: n = 5 note: 8, 6, 9, 7, 10

Initializare (prima nota = 8): suma = 8, maxim = 8, minim = 8

i=2, nota=6: suma = 14, minim = 6 (6 < 8)

i=3, nota=9: suma = 23, maxim = 9 (9 > 8)

i=4, nota=7: suma = 30 (nimic nu se schimba la max/min)

i=5, nota=10: suma = 40, maxim = 10 (10 > 9)

Final: suma = 40, maxim = 10, minim = 6

Putem calcula suma, maxim si minim in aceeasi parcurgere?
A Nu, trebuie parcurgeri separate
B Da, le calculam pe toate deodata
C Doar suma si media impreuna
4

Pasul 3: Media si numararea notelor peste medie

Dupa prima bucla avem suma, deci putem calcula media. Dar pentru a numara notele peste medie avem o constrangere: notele nu sunt memorate (sirurile de valori sunt materie de clasa a VIII-a). Solutia: efectuam o a doua citire, in care utilizatorul introduce notele inca o data si le comparam cu media calculata.

// Calculam media dupa prima bucla
media = suma / n

// A doua bucla: numaram notele peste medie
SCRIE ("Reintrodu notele pentru analiza:")
peste_medie = 0
PENTRU i = 1 , n EXECUTA
SCRIE ("Nota ", i , ": ")
CITESTE nota
DACA nota > media ATUNCI
peste_medie = peste_medie + 1
SFARSIT_DACA
SFARSIT_PENTRU

Exemplu: note = 8, 6, 9, 7, 10; media = 8

Note peste medie (nota > 8): 9 si 10 β†’ 2 note

De ce nu putem numara notele peste medie in prima bucla?
A Nu stim media inainte de a citi toate notele
B Nu avem destule variabile
C Structura PENTRU nu permite asta
5

Pasul 4: Rezultatul final

Afisam toate rezultatele si verificam promovarea cu structura alternativa DACA-ATUNCI-ALTFEL:

SCRIE ("===== REZULTATE =====")
SCRIE ("Suma notelor: ", suma )
SCRIE ("Media: ", media )
SCRIE ("Nota maxima: ", maxim )
SCRIE ("Nota minima: ", minim )
SCRIE ("Note peste medie: ", peste_medie )

DACA media >= 5 ATUNCI
SCRIE ("Elevul este PROMOVAT!")
ALTFEL
SCRIE ("Elevul este NEPROMOVAT.")
SFARSIT_DACA
Ce conditie verifica daca elevul este promovat?
A media > 10
B media >= 5
C media = 5
6

Exemplu complet

Sa vedem rezultatele pentru cinci note: 8, 6, 9, 7, 10.

Urmarire variabile pas cu pas:

Initializare (nota = 8): suma=8, maxim=8, minim=8

i=2 (nota=6): suma=14, minim=6

i=3 (nota=9): suma=23, maxim=9

i=4 (nota=7): suma=30

i=5 (nota=10): suma=40, maxim=10

media = 40 / 5 = 8.0

Note peste 8: 9, 10 β†’ peste_medie = 2

Suma: 40

Media: 8.0

Nota maxima: 10

Nota minima: 6

Note peste medie: 2 (nota 9 si 10)

βœ“ PROMOVAT

Ce afiseaza programul pentru note = 8, 6, 9, 7, 10?
A Suma=40, Media=8, Max=10, Min=6
B Suma=35, Media=7, Max=9, Min=6
C Suma=40, Media=10, Max=10, Min=8
7

Validarea datelor β€” verificare cu DACA

Un program corect verifica daca datele introduse sunt valide. In sistemul romanesc, notele sunt numere intregi intre 1 si 10. Putem verifica asta cu structura alternativa DACA-ATUNCI si sa afisam un mesaj de avertizare daca nota este in afara intervalului:

CITESTE nota
DACA nota < 1 SAU nota > 10 ATUNCI
SCRIE ("ATENTIE: Nota invalida! (interval valid: 1-10)")
SFARSIT_DACA

Nota: Repetarea automata a citirii (pana cand utilizatorul introduce o valoare valida) necesita o structura conditionata posterior β€” prezentata la clasa a VIII-a. La clasa a VII-a, afisam un mesaj de avertizare cu DACA si continuam.

Care este limita de promovare in sistemul romanesc de notare?
A Media >= 4
B Media >= 5
C Media >= 6
8

Algoritmul complet β€” vedere de ansamblu

Sa vedem intregul algoritm adunat la un loc, cu cele doua bucle si calculele finale:

// ===== CATALOG NOTE cls. VII =====
SCRIE ("Cate note? ")
CITESTE n

// Prima nota + initializare acumulatoare
SCRIE ("Nota 1: ")
CITESTE nota
suma = nota
maxim = nota
minim = nota

// Bucla 1: citire si calcule
PENTRU i = 2 , n EXECUTA
SCRIE ("Nota ", i , ": ")
CITESTE nota
suma = suma + nota
DACA nota > maxim ATUNCI maxim = nota SFARSIT_DACA
DACA nota < minim ATUNCI minim = nota SFARSIT_DACA
SFARSIT_PENTRU

// Calculam media
media = suma / n

// Bucla 2: numaram notele peste medie
SCRIE ("Reintrodu notele:")
peste_medie = 0
PENTRU i = 1 , n EXECUTA
SCRIE ("Nota ", i , ": ")
CITESTE nota
DACA nota > media ATUNCI
peste_medie = peste_medie + 1
SFARSIT_DACA
SFARSIT_PENTRU

// Afisare rezultate
SCRIE ("Suma: ", suma )
SCRIE ("Media: ", media )
SCRIE ("Maxim: ", maxim )
SCRIE ("Minim: ", minim )
SCRIE ("Peste medie: ", peste_medie )
DACA media >= 5 ATUNCI
SCRIE ("PROMOVAT")
ALTFEL
SCRIE ("NEPROMOVAT")
SFARSIT_DACA
Dupa ce am citit toate notele si calculat suma, ce urmeaza?
A Iesim din program
B Calculam media ca suma/n
C Introducem notele inca o data imediat
9

Contorul si acumulatorul β€” instrumentele esentiale

In algoritmul nostru am folosit doua tipare fundamentale cu structuri repetitive:

Tiparul acumulatorului (suma):

1. Initializare: suma = 0 (sau prima valoare)

2. In bucla: suma = suma + valoare

3. Dupa bucla: afisam suma sau calculam media

Tiparul contorului (numarare):

1. Initializare: contor = 0

2. In bucla: DACA conditie ATUNCI contor = contor + 1

3. Dupa bucla: afisam valoarea contorului

Diferenta: acumulatorul creste cu valoarea elementului; contorul creste mereu cu 1.

Ce variabila folosim pentru a numara notele peste medie?
A suma
B maxim
C peste_medie (contor)
10

Recapitulare modul

Ce ai invatat in acest modul:

  • βœ“ Structura PENTRU β€” repetitie cu contor
  • βœ“ Citirea mai multor valori in bucla
  • βœ“ Variabila acumulator (suma)
  • βœ“ Variabila contor (numarare)
  • βœ“ Gasirea maximului si minimului
  • βœ“ Calculul mediei aritmetice
  • βœ“ Combinarea structurii repetitive cu cea alternativa
  • βœ“ Verificarea promovarii cu DACA-ATUNCI-ALTFEL
  • βœ“ Integrarea algoritmilor intr-un proiect practic

πŸŽ‰ Felicitari!

Acum poti crea programe complete care prelucreaza date folosind structuri repetitive si alternative!

La clasa a VIII-a vei invata sirurile de valori (arrays) β€” care permit memorarea tuturor elementelor si rezolvarea problemelor intr-o singura bucla.

Ce ai invatat in acest modul despre structuri repetitive?
A Doar cum sa scriem bucla PENTRU
B Structura PENTRU, citire date, suma, media, maxim, minim, numarare
C Doar calcule simple cu variabile

Exercitii practice

Exercitiul 1 (Nivel minim) β€” Analiza pas cu pas

Cerinta: Pentru sirul de 5 numere v = 15, 22, 8, 30, 12, executa manual algoritmul de mai sus si raspunde la intrebarile de mai jos. Arata fiecare pas al calculului, nu doar rezultatul final.

  1. Scrie initializarea: care este valoarea initiala a lui suma, maxim si minim dupa citirea primului element (15)?
  2. Urmareste bucla PENTRU (i de la 2 la 5): ce valori au suma, maxim si minim la sfarsitul fiecarui pas?
  3. Calculeaza media aritmetica. Rotunjeste la doua zecimale.
  4. Daca ai reintroduce valorile (a doua bucla), cate valori sunt mai mari decat media? Care sunt ele?

Raspunde numerotat: 1. ... 2. ... 3. ... 4. ...

Indicii:

  • Suma = 15+22+8+30+12 = ?
  • Sirul are 5 elemente, deci media = suma / 5
  • La fiecare pas compari nota curenta cu maximul si minimul curent

Exercitiul 2 (Nivel standard) β€” Mini-proiect: Temperaturile saptamanii

Adapteaza algoritmul "Catalog note" pentru a analiza temperaturile unei saptamani. Programul trebuie sa citeasca 7 temperaturi (una pentru fiecare zi) si sa ofere o analiza completa.

Cerinte obligatorii:

⭐ Bonus (pentru nota maxima):

  • Calculeaza amplitudinea termica (max - min)
  • Afiseaza in ce zi a fost cel mai cald si cel mai frig (Luni/Marti/.../Duminica)

Criterii de evaluare:

  • Suficient (5-6): Citeste temperaturi, calculeaza media, gaseste max si min
  • Bine (7-8): Toate cerintele obligatorii implementate corect
  • Foarte bine (9-10): Include cel putin 2 bonusuri, verificare date, cod comentat

Exercitiul 3 (Nivel performanta) β€” Compunere

Cerinta: Scrie un text de 10-15 randuri cu titlul "Algoritmii cu structuri repetitive in viata de zi cu zi". Explica ce sunt algoritmii cu repetitie, de ce sunt importanti si da cel putin 3 exemple concrete din viata reala (note scolare, temperaturi meteo, preturi produse, scoruri sportive etc.).

Indicii pentru structurarea raspunsului:

  • Incepe prin a defini structura repetitiva si cazurile cand o folosim
  • Explica tiparul: acumulator (suma), contor, maxim/minim
  • Da 3 exemple concrete: catalog note, meteo, preturi magazine
  • Incheie cu o concluzie despre importanta algoritmilor repetitivi

Cuvinte cheie de folosit: structura repetitiva, bucla, contor, acumulator, suma, media, maxim, minim, parcurgere, eficient

Format: Scrie raspunsul pe foaie sau intr-un document Word, folosind paragrafe coerente (nu liste). Minim 10 randuri.

Ce ai invatat astazi

  • Proiectul: Catalog de note (cls. VII β€” variabile scalare)
  • Pasul 1: Citirea datelor cu PENTRU si initializarea acumulatoarelor
  • Pasul 2: Suma, maximul si minimul intr-o singura bucla
  • Pasul 3: Media si numararea notelor peste medie (a doua bucla)
  • Pasul 4: Afisarea rezultatelor si verificarea promovarii
  • Exemplu complet cu urmarire variabile pas cu pas
  • Validarea datelor cu structura alternativa DACA-ATUNCI
  • Contorul vs acumulatorul β€” diferenta si utilizare
  • Algoritmul complet β€” vedere de ansamblu
  • Recapitulare modul

Modulul urmator

Ai terminat modulul 4! La clasa a VIII-a vei aprofunda sirurile de valori (arrays) β€” structura care memoreaza toate elementele si permite algoritmi mai puternici.

↑ Inapoi la modul