0335 - Expresie3: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Dragos1234 (talk | contribs)
 
(4 intermediate revisions by the same user not shown)
Line 5: Line 5:
Programul citește de la tastatură numărul '''n'''.
Programul citește de la tastatură numărul '''n'''.
== Date de iesire ==
== Date de iesire ==
Programul afișează în consolă mesajul "Datele introduse corespund cerintelor", unde '''S''' reprezintă valoarea calculată. În caz contrar programul v-a afișa "Datele nu corespund cerințelor."
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 ==
== Restricţii şi precizări ==
Line 16: Line 16:
; Ieșire
; Ieșire
: Datele introduse corespund cerintelor.
: Datele introduse corespund cerintelor.
: Rezultatul este -12.
: -12


=== Exemplul 2 ===
=== Exemplul 2 ===
Line 22: Line 22:
: 101
: 101
; Ieșire
; Ieșire
: Datele nu corespund Cerintelor.
: Datele introduse nu corespund cerintelor.


=== Exemplul 3 ===
=== Exemplul 3 ===

Latest revision as of 17:33, 30 April 2023

Sursa: [1]

Cerinţa[edit]

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[edit]

Programul citește de la tastatură numărul n.

Date de iesire[edit]

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[edit]

  • 0 < n ⩽ 100

Exemplu[edit]

Exemplul 1[edit]

Intrare
4
Ieșire
Datele introduse corespund cerintelor.
-12

Exemplul 2[edit]

Intrare
101
Ieșire
Datele introduse nu corespund cerintelor.

Exemplul 3[edit]

Intrare
8
Ieșire
Datele introduse corespund cerintelor.
40

Rezolvare[edit]

<syntaxhighlight lang="python" line>

  1. 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[edit]

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.