2299 - Media Geometrica: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Linia 26: Linia 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>

Versiunea de la data 21 aprilie 2023 15:26

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

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