2948 - Media Patratica

From Bitnami MediaWiki

Cerința

Se dau n numere naturale. Calculați media pătratică a celor n numere citite cu 2 zecimale exacte.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran media pătratică a celor n numere cu 2 zecimale exacte.

Restricții și precizări

1 ≤ n ≤ 1000 cele n</span numere citite vor fi mai mici decât 1.000.000

Exemplu:

Intrare 5 1 2 3 4 5

Ieșire 3.31

Rezolvare

<syntaxhighlight lang="python" line="1"> def validare_numar_intreg(mesaj):

   while True:
       try:
           n = int(input(mesaj))
           return n
       except ValueError:
           print("Trebuie sa introduci un numar intreg. Incearca din nou.")

def validare_lista_numere(mesaj, lungime):

   while True:
       try:
           nums = list(map(int, input(mesaj).split()))
           if len(nums) != lungime:
               raise ValueError
           for num in nums:
               if num < 0 or num > 1000000:
                   raise ValueError
           return nums
       except ValueError:
           print(f"Trebuie sa introduci exact {lungime} numere naturale mai mici decat 1.000.000. Incearca din nou.")

def media_patratica(nums):

   suma_patrate = sum([num ** 2 for num in nums])
   media_patratica = (suma_patrate / len(nums)) ** 0.5
   return round(media_patratica, 2)

def main():

   n = validare_numar_intreg("Introduceti numarul de numere: ")
   nums = validare_lista_numere(f"Introduceti cele {n} numere separate prin spatiu: ", n)
   rezultat = media_patratica(nums)
   print(f"Media patratica a celor {n} numere este {rezultat}.")

if __name__ == '__main__':

   main()

</syntaxhighlight>