0051 - Suma: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Paul Ungur (talk | contribs)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 25: Line 25:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# 0051 - Suma (secțiune)
def validare(numere):
    for numar in numere:
        if numar < -1000000 or numar > 1000000:
            return False
    return True


def calculeaza_suma(numere):
def calculeaza_suma(numere):
Line 31: Line 35:
     for numar in numere:
     for numar in numere:
         suma += numar
         suma += numar
     return suma
     print(suma)
 
 
def citeste_numere():
    numere = []
    while True:
        numar = input()
        if not numar.isdigit():
            print('Datele nu corespund restricțiilor impuse.')
            return []
        numar = int(numar)
        if numar == 0:
            break
        if numar < -1000000 or numar > 1000000:
            print('Datele nu corespund restricțiilor impuse.')
            return []
        numere.append(numar)
    print('Datele sunt introduse corect.')
    return numere
 
 
def main():
    numere = citeste_numere()
    if numere:
        suma = calculeaza_suma(numere)
        if abs(suma) > 1000000000:
            print('Valoarea absolută a sumei depășește 1.000.000.000.')
        else:
            print(suma)




if __name__ == "__main__":
if __name__ == "__main__":
     main()
     numere = list(map(int, input().split()))
 
    if validare(numere):
 
        print("Date de intrare valide")
 
        calculeaza_suma(numere)
 
    else:
 
        print("Date de intrare invalide")
 
 
 
 
 
 
 
</syntaxhighlight>
</syntaxhighlight>
 
==Explicatie cod:==
== Explicație rezolvare==
Funcția validare(numere) primește o listă de numere și verifică dacă fiecare număr se încadrează în intervalul [-1000000, 1000000]. Dacă există un număr care nu respectă această condiție, se returnează False. În caz contrar, se returnează True.
  Am definit două funcții, calculeaza_suma și citeste_numere, care respectiv calculează suma numerelor și citesc numerele de la tastatură. Funcția calculeaza_suma primește o listă de numere și returnează suma lor. Funcția citeste_numere citeste numere de la tastatură până la apariția valorii 0 și validează numerele citite. Dacă numărul citit nu este un număr întreg, funcția afișează un mesaj de eroare și returnează o listă goală. Dacă numărul citit este în afara intervalului (-1.000.000 , 1.000.000), funcția afișează un mesaj de eroare și returnează o listă goală. Dacă numărul citit este 0, funcția se oprește și returnează lista de numere citite. Funcția main citește numerele și apelează funcția calculeaza_suma pentru a calcula suma lor. Dacă valoarea absolută a sumei depășește 1.000.000.000, funcția afișează un mesaj de eroare. Altfel, funcția afișează suma numerelor.
Funcția calculeaza_suma(numere) primește o listă de numere și calculează suma acestora utilizând un loop. Suma este inițializată cu 0 și se adaugă fiecare număr din listă la suma totală. La final, suma este afișată cu print().
În blocul if __name__ == "__main__":, se citește o listă de numere numere utilizând list(map(int, input().split())), care citeste numerele separate prin spațiu și le stochează într-o listă convertindu-le în valori intregi. Apoi, se validează datele de intrare utilizând funcția validare(numere). Dacă datele sunt valide, se afișează mesajul "Date de intrare valide" și se apelează funcția calculeaza_suma(numere) pentru a calcula suma numerelor din listă și a o afișa. Dacă datele nu sunt valide, se afișează mesajul "Date de intrare invalide".
Acest cod verifică dacă toate numerele din listă sunt în intervalul [-1000000, 1000000], calculează suma lor și o afișează.

Latest revision as of 17:04, 15 May 2023

Sursa: 0161 - inlocuire


Cerinţa[edit]

Se citesc numere de la tastatură până la apariția lui 0. Să se determine suma lor.

Date de intrare[edit]

Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii 0.

Date de ieșire[edit]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.". Apoi pe urmatoarea linie, programul afișează vasloarea variabilei suma, reprezentând suma numerelor citite. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări[edit]

  • -1000000numar_citit1.000.000
  • valoarea absolută a sumei nu va depăși 1.000.000.000


Exemplu[edit]

Intrare
5 6 2 1 0
Ieșire
Datele sunt introduse corect.
14


Rezolvare[edit]

<syntaxhighlight lang="python" line> def validare(numere):

   for numar in numere:
       if numar < -1000000 or numar > 1000000:
           return False
   return True

def calculeaza_suma(numere):

   suma = 0
   for numar in numere:
       suma += numar
   print(suma)


if __name__ == "__main__":

   numere = list(map(int, input().split()))
   if validare(numere):
       print("Date de intrare valide")
       calculeaza_suma(numere)
   else:
       print("Date de intrare invalide")

</syntaxhighlight>

Explicatie cod:[edit]

Funcția validare(numere) primește o listă de numere și verifică dacă fiecare număr se încadrează în intervalul [-1000000, 1000000]. Dacă există un număr care nu respectă această condiție, se returnează False. În caz contrar, se returnează True. Funcția calculeaza_suma(numere) primește o listă de numere și calculează suma acestora utilizând un loop. Suma este inițializată cu 0 și se adaugă fiecare număr din listă la suma totală. La final, suma este afișată cu print(). În blocul if __name__ == "__main__":, se citește o listă de numere numere utilizând list(map(int, input().split())), care citeste numerele separate prin spațiu și le stochează într-o listă convertindu-le în valori intregi. Apoi, se validează datele de intrare utilizând funcția validare(numere). Dacă datele sunt valide, se afișează mesajul "Date de intrare valide" și se apelează funcția calculeaza_suma(numere) pentru a calcula suma numerelor din listă și a o afișa. Dacă datele nu sunt valide, se afișează mesajul "Date de intrare invalide". Acest cod verifică dacă toate numerele din listă sunt în intervalul [-1000000, 1000000], calculează suma lor și o afișează.