0115 - Medie

From Bitnami MediaWiki

Cerinţa

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

Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieşire

Programul afișează pe ecran numărul M, reprezentând media aritmetică a valorilor pare.

Restricţii şi precizări

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:

Intrare 5 8 7 8 9 10

Ieșire 8.66

Rezolvare

<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>