2299 - Media Geometrica: Difference between revisions

From Bitnami MediaWiki
No edit summary
Paul Ungur (talk | contribs)
Line 26: Line 26:
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
def validare(n, numere):
def read_input():
     if n <= 1:
     n = int(input("Introduceti numarul de numere: "))
        print("Numărul n trebuie să fie mai mare decât 1!")
    nums = []
        return False
     for i in range(n):
     if len(numere) != n:
         num = int(input(f"Introduceti numarul {i+1}: "))
         print("Trebuie să introduceți exact {} numere!".format(n))
        nums.append(num)
        return False
    return nums
     for nr in numere:
 
         if nr < 0 or nr > 50:
def validate_input(nums):
             print("Numerele trebuie fie cuprinse între 0 și 50!")
     for num in nums:
         if num < 0 or num > 50:
             print("Numerele trebuie sa fie cuprinse intre 0 si 50.")
             return False
             return False
     return True
     return True


 
def calculate_geometric_mean(nums):
def rezolvare(n, numere):
     product = 1
     produs = 1
     for num in nums:
     for nr in numere:
         product *= num
         produs *= nr
     geometric_mean = product ** (1/len(nums))
     media_geometrica = produs ** (1/n)
     return geometric_mean
     return media_geometrica
 


def main():
def main():
     n = int(input("Introduceți numărul n: "))
     nums = read_input()
     numere = []
     if not validate_input(nums):
    for i in range(n):
         return
         numar = int(input("Introduceți numărul {}:".format(i+1)))
     geometric_mean = calculate_geometric_mean(nums)
        numere.append(numar)
    print(f"Media geometrica este: {geometric_mean:.2f}")
 
     if validare(n, numere):
        media = rezolvare(n, numere)
        print("Media geometrică este: {:.2f}".format(media))
 


if __name__ == '__main__':
if __name__ == "__main__":
     main()
     main()
</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:26, 21 April 2023

Cerinta

Se dau n numere naturale. Calculați media lor geometrică.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran media geometrică a celor n numere.

Restricții și precizări

1 < n ≤ 10 numerele citite vor fi cuprinse între 0 și 50 . rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât 0.01 .

Exemplu

Intrare 4 2 4 2 1

Ieșire 2

Explicație

2⋅4⋅2⋅1−−−−−−−−√4=2

Rezolvare

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

   n = int(input("Introduceti numarul de numere: "))
   nums = []
   for i in range(n):
       num = int(input(f"Introduceti numarul {i+1}: "))
       nums.append(num)
   return nums

def validate_input(nums):

   for num in nums:
       if num < 0 or num > 50:
           print("Numerele trebuie sa fie cuprinse intre 0 si 50.")
           return False
   return True

def calculate_geometric_mean(nums):

   product = 1
   for num in nums:
       product *= num
   geometric_mean = product ** (1/len(nums))
   return geometric_mean

def main():

   nums = read_input()
   if not validate_input(nums):
       return
   geometric_mean = calculate_geometric_mean(nums)
   print(f"Media geometrica este: {geometric_mean:.2f}")

if __name__ == "__main__":

   main()

</syntaxhighlight>