2948 - Media Patratica: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Paul Ungur (talk | contribs)
Line 22: Line 22:
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
import math
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.")


n = int(input("Introduceti numarul n: "))
def validare_lista_numere(mesaj, lungime):
numbers = input("Introduceti cele " + str(n) + " numere separate prin spatiu: ").split()
    while True:
numbers = [int(num) for num in numbers]
        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.")


sum_of_squares = sum([num**2 for num in numbers])
def media_patratica(nums):
root_mean_square = math.sqrt(sum_of_squares/n)
    suma_patrate = sum([num ** 2 for num in nums])
print("Media patratica este:", format(root_mean_square, '.2f'))
    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>
</syntaxhighlight>

Revision as of 15:12, 24 March 2023

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>