0115 - Medie
Cerinţa
Să se scrie un program care citeşte de la tastatură un număr natural n şi apoi un şir de n numere naturale şi determină media aritmetică a celor pare.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.
Date de ieşire
Programul afișează pe ecran numărul M, reprezentând media aritmetică a valorilor pare.
Restricţii şi precizări
0 < n < 1000 cele n numere citite vor fi mai mici decât 1.000.000 rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât 0.01. în toate seturile de date de intrare se vor afla şi valori pare
Exemplu:
Intrare 5 8 7 8 9 10
Ieșire 8.66
Rezolvare
<syntaxhighlight lang="python" line> def validare_n(n):
if not 0 < n < 1000: print("Eroare: n trebuie sa fie intre 1 si 999!") return False return True
def validare_numar(numar):
if not 0 <= numar < 1000000: print("Eroare: numarul trebuie sa fie mai mic decat 1.000.000!") return False return True
def citire_lista(n):
lista = [] for i in range(n): numar = int(input(f"Introduceti numarul {i+1}: ")) if not validare_numar(numar): return [] lista.append(numar) return lista
def media_aritmetica_pare(lista):
suma = 0 contor = 0 for numar in lista: if numar % 2 == 0: suma += numar contor += 1 if contor == 0: return 0 return suma / contor
def main():
n = int(input("Introduceti numarul n: ")) if not validare_n(n): return lista = citire_lista(n) if len(lista) == 0: return media = media_aritmetica_pare(lista) print(f"Media aritmetica a numerelor pare este: {media:.2f}")
if __name__ == '__main__':
main() </syntaxhighlight>
Explicatie
Programul începe prin definirea a trei funcții de validare: validare_n(n) verifică dacă numărul n respectă restricțiile impuse, adică să fie între 1 și 999, iar validare_numar(numar) verifică dacă un număr citit de la tastatură este mai mic decât 1.000.000. citire_lista(n) primește numărul n de la tastatură și citește o listă de n numere naturale. Funcția media_aritmetica_pare(lista) calculează media aritmetică a numerelor pare din lista primită ca argument. Funcția main() este funcția principală care citește numărul n, validează datele de intrare și apelează funcțiile de citire și calculare pentru a afișa rezultatul final.
Pentru a verifica diferența dintre valoarea afișată și valoarea corectă, am folosit formatarea de string-uri prin utilizarea funcției format() și a sintaxei :.2f, care trunchiază rezultatul la două zecimale.