0115 - Medie: Difference between revisions
Paul Ungur (talk | contribs) Pagină nouă: ==Cerinţa== Să se scrie un program care citeşte de la tastatură un număr natural <span style=“color: red”> n</span> şi apoi un şir de <span style=“color: red”> n<span> numere naturale şi determină media aritmetică a celor pare. ==Date de intrare== Programul citește de la tastatură numărul <span style=“color: red”> n</span>, iar apoi <span style=“color: red”> n</span> numere naturale. ==Date de ieşire== Programul afișează pe ecran numărul <sp... |
Paul Ungur (talk | contribs) No edit summary |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
==Date de ieşire== | ==Date de ieşire== | ||
Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Date de intrare valide."''', apoi programul afișează pe ecran numărul <span style=“color: red”> M</span>, reprezentând media aritmetică a valorilor pare. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: '''"Date de intrare invalide".''' | |||
==Restricţii şi precizări== | ==Restricţii şi precizări== | ||
Line 12: | Line 12: | ||
cele n numere citite vor fi mai mici decât <span style=“color: red”> 1.000.000</span> | cele n numere citite vor fi mai mici decât <span style=“color: red”> 1.000.000</span> | ||
rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât <span style=“color: red”> 0.01</span>. | rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât <span style=“color: red”> 0.01</span>. | ||
În toate seturile de date de intrare se vor afla şi valori pare. | |||
==Exemplu:== | ==Exemplu:== | ||
Intrare | Intrare | ||
5 | : 5 | ||
8 7 8 9 10 | : 8 7 8 9 10 | ||
Ieșire | Ieșire | ||
8.66 | : Date de intrare valide | ||
: 8.66 | |||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
def | def validare_date(n, numere): | ||
if | if n < 1 or n > 999: | ||
return False | return False | ||
for numar in numere: | |||
if numar < 0 or numar > 1_000_000: | |||
return False | |||
return True | return True | ||
def | def suma_numerelor_pare(numere): | ||
suma = 0 | suma = 0 | ||
cate_pare = 0 | |||
for numar in | for numar in numere: | ||
if numar % 2 == 0: | if numar % 2 == 0: | ||
suma += numar | suma += numar | ||
cate_pare += 1 | |||
return suma, cate_pare | |||
def medie(numere): | |||
suma, cate_pare = suma_numerelor_pare(numere) | |||
medie = suma / cate_pare | |||
print(medie) | |||
if __name__ == '__main__': | if __name__ == '__main__': | ||
n = int(input()) | |||
numere = list(map(int, input().split())) | |||
if validare_date(n, numere): | |||
print("Date de intrare valide") | |||
medie(numere) | |||
else: | |||
print("Date de intrare invalide") | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicatie cod:== | |||
==Explicatie== | Funcția validare_date(n, numere) primește un număr n și o listă de numere numere și verifică dacă n se află în intervalul [1, 999] și dacă fiecare număr din numere se încadrează în intervalul [0, 1_000_000]. Dacă una dintre condiții nu este îndeplinită, funcția returnează False. În caz contrar, returnează True. | ||
Funcția suma_numerelor_pare(numere) primește o listă de numere numere și calculează suma tuturor numerelor pare din listă. De asemenea, numără câte numere pare sunt în listă. Pentru fiecare număr din listă, se verifică dacă este par (adică are restul împărțirii la 2 egal cu zero), iar în caz afirmativ, se adaugă la suma și se incrementează un contor. Funcția returnează suma și numărul de numere pare găsite. | |||
Funcția medie(numere) primește o listă de numere numere și calculează media aritmetică a numerelor pare din listă. Se utilizează funcția suma_numerelor_pare() pentru a obține suma și numărul de numere pare, apoi se calculează media împărțind suma la numărul de numere pare. Rezultatul este afișat. | |||
În blocul if __name__ == '__main__':, se citește de la intrare un număr n și o serie de numere separate prin spațiu utilizând funcția input() și split(), și se stochează într-o variabilă numere. Apoi, se verifică dacă valorile citite sunt valide utilizând funcția validare_date(). Dacă valorile sunt valide, se afișează un mesaj de confirmare și se apelează funcția medie() pentru a calcula și afișa media numerelor pare. În caz contrar, se afișează un mesaj de eroare. |
Latest revision as of 18:55, 29 June 2023
Cerinţa[edit | edit source]
Să se scrie un program care citeşte de la tastatură un număr natural n şi apoi un şir de n numere naturale şi determină media aritmetică a celor pare.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieşire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi programul afișează pe ecran numărul M, reprezentând media aritmetică a valorilor pare. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".
Restricţii şi precizări[edit | edit source]
0 < n < 1000 cele n numere citite vor fi mai mici decât 1.000.000 rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât 0.01. În toate seturile de date de intrare se vor afla şi valori pare.
Exemplu:[edit | edit source]
Intrare
- 5
- 8 7 8 9 10
Ieșire
- Date de intrare valide
- 8.66
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> def validare_date(n, numere):
if n < 1 or n > 999: return False for numar in numere: if numar < 0 or numar > 1_000_000: return False return True
def suma_numerelor_pare(numere):
suma = 0 cate_pare = 0 for numar in numere: if numar % 2 == 0: suma += numar cate_pare += 1 return suma, cate_pare
def medie(numere):
suma, cate_pare = suma_numerelor_pare(numere) medie = suma / cate_pare print(medie)
if __name__ == '__main__':
n = int(input()) numere = list(map(int, input().split())) if validare_date(n, numere): print("Date de intrare valide") medie(numere) else: print("Date de intrare invalide") </syntaxhighlight>
Explicatie cod:[edit | edit source]
Funcția validare_date(n, numere) primește un număr n și o listă de numere numere și verifică dacă n se află în intervalul [1, 999] și dacă fiecare număr din numere se încadrează în intervalul [0, 1_000_000]. Dacă una dintre condiții nu este îndeplinită, funcția returnează False. În caz contrar, returnează True. Funcția suma_numerelor_pare(numere) primește o listă de numere numere și calculează suma tuturor numerelor pare din listă. De asemenea, numără câte numere pare sunt în listă. Pentru fiecare număr din listă, se verifică dacă este par (adică are restul împărțirii la 2 egal cu zero), iar în caz afirmativ, se adaugă la suma și se incrementează un contor. Funcția returnează suma și numărul de numere pare găsite. Funcția medie(numere) primește o listă de numere numere și calculează media aritmetică a numerelor pare din listă. Se utilizează funcția suma_numerelor_pare() pentru a obține suma și numărul de numere pare, apoi se calculează media împărțind suma la numărul de numere pare. Rezultatul este afișat. În blocul if __name__ == '__main__':, se citește de la intrare un număr n și o serie de numere separate prin spațiu utilizând funcția input() și split(), și se stochează într-o variabilă numere. Apoi, se verifică dacă valorile citite sunt valide utilizând funcția validare_date(). Dacă valorile sunt valide, se afișează un mesaj de confirmare și se apelează funcția medie() pentru a calcula și afișa media numerelor pare. În caz contrar, se afișează un mesaj de eroare.