0115 - Medie: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
No edit summary
Paul Ungur (talk | contribs)
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 6: Line 6:


==Date de ieşire==
==Date de ieşire==
Programul afișează pe ecran numărul <span style=“color: red”> M</span>, reprezentând media aritmetică a valorilor pare.
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
Î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==
Line 58: Line 59:
         print("Date de intrare invalide")
         print("Date de intrare invalide")
  </syntaxhighlight>
  </syntaxhighlight>
==Explicatie cod:==
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.