2948 - Media Patratica: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) |
||
Line 22: | Line 22: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line="1"> | <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]) | |||
print("Media patratica este | 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>