0335 - Expresie3: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Dragos1234 (talk | contribs)
Line 33: Line 33:
     expresie = 0
     expresie = 0
     semn = 1
     semn = 1
    if(n < 0 or n > 100):
        print("Datele introduse nu corespund cerintelor.")


     for i in range(1, n + 1):
     for i in range(1, n + 1):
Line 41: Line 38:
         semn *= -1
         semn *= -1


     print(f"Rezultatul este {expresie}.")
     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__":
if __name__ == "__main__":
     numar = int(input())
     numar = input("Introduceti un numar: ")
     expresie_3(numar)
    try:
        numar = int(numar)
        if validare_numar(numar):
            expresie_3(numar)
     except ValueError:
        print("Datele introduse nu corespund cerintelor.")
 





Revision as of 13:12, 26 April 2023

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ă pe ecran mesajul Rezultatul este S, unde S reprezintă valoarea calculată. În caz contrar programul v-a afișa "Datele nu corespund restricțiilor impuse."

Restricţii şi precizări

  • 0 < n ⩽ 100

Exemplu

Exemplul 1

Intrare
4
Ieșire
Rezultatul este -12.

Exemplul 2

Intrare
101
Ieșire
Datele nu corespund restricțiilor impuse.

Exemplul 3

Intrare
8
Ieșire
Rezultatul este -40.

Rezolvare

<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

Acest program primește ca input un număr întreg n și calculează valoarea unei expresii matematice, definită prin formula: 1*2 - 2*3 + 3*4 - 4*5 + ... +/- n*(n+1), în funcție de valoarea lui n. Programul afișează apoi valoarea expresiei calculate.

Mai precis, programul urmează următorii pași:

  • Verifică dacă input-ul (n) respectă anumite condiții (trebuie să fie între 0 și 100). Dacă input-ul nu respectă aceste condiții, programul afișează un mesaj de eroare și se oprește.
  • Inițializează valoarea expresiei (expresie) și un semn (semn) cu valoarea 1.
  • Folosind o buclă for, se calculează suma parțială a expresiei pentru fiecare termen, folosind formula dată. La fiecare iterație, se actualizează valoarea expresiei (expresie) și semnul (semn) în funcție de iterația curentă (i).
  • La sfârșit, programul afișează valoarea finală a expresiei calculate.