0051 - Suma

De la Universitas MediaWiki

Sursa: 0161 - inlocuire


Cerinţa

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

Date de intrare

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

Date de ieșire

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

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


Exemplu

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


Rezolvare

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")

Explicatie cod:

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ă.