0335 - Expresie3
Sursa: [1]
Cerinţa
Să se scrie un program care citește numărul natural n și determină suma S=1*2-2*3+3*4-...±n*(n+1).
Date de intrare
Programul citește de la tastatură numărul n.
Date de iesire
Programul afișează în consolă mesajul "Datele introduse corespund cerintelor", unde S reprezintă valoarea calculată. În caz contrar programul va afișa "Datele introduse nu corespund cerințelor."
Restricţii şi precizări
- 0 < n ⩽ 100
Exemplu
Exemplul 1
- Intrare
- 4
- Ieșire
- Datele introduse corespund cerintelor.
- -12
Exemplul 2
- Intrare
- 101
- Ieșire
- Datele introduse nu corespund cerintelor.
Exemplul 3
- Intrare
- 8
- Ieșire
- Datele introduse corespund cerintelor.
- 40
Rezolvare
<syntaxhighlight lang="python" line>
- 0335
def expresie_3(n):
expresie = 0 semn = 1
for i in range(1, n + 1): expresie += semn * i * (i + 1) semn *= -1
print("Datele introduse corespund cerintelor.") print(expresie)
def validare_numar(n):
if not isinstance(n, int): print("Datele introduse nu corespund cerintelor.") return False elif n < 0 or n > 100: print("Datele introduse nu corespund cerintelor.") return False else: return True
if __name__ == "__main__":
numar = input("Introduceti un numar: ") try: numar = int(numar) if validare_numar(numar): expresie_3(numar) except ValueError: print("Datele introduse nu corespund cerintelor.")
</syntaxhighlight>
Explicatie rezolvare
Acest program este o implementare a unei funcții numite expresie_3, care primește un argument de tip întreg n. Funcția calculează o expresie matematică și o afișează.
Expresia matematică este calculată prin intermediul unui ciclu for care parcurge valorile de la 1 la n. În fiecare iterație, expresia este actualizată cu un termen format din produsul dintre semn, i și i+1. semn își schimbă valoarea între fiecare iterație, alternând între 1 și -1.
Înainte de a apela funcția expresie_3, programul validează datele de intrare prin intermediul funcției validare_numar. Dacă datele introduse sunt de tipul întreg și se află în intervalul [0, 100], funcția expresie_3 este apelată cu acel argument. În caz contrar, programul afișează un mesaj de eroare.
Programul folosește de asemenea clauza if __name__ == "__main__" pentru a se asigura că codul este executat doar dacă acesta este rulat ca program principal și nu importat ca modul într-un alt program.