0052 - Suma Pare 1: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: ==Cerinţa== Se citesc numere de la tastatură până la apariția lui zero. Să se determine suma celor pare. ==Date de intrare== Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii <span style=“color: red”>0</span. ==Date de ieşire== Programul afișează pe ecran numărul <span style=“color: red”> S</span>, reprezentând suma numerelor pare. ==Restricţii şi precizări== numerele citite aparține intervalului <span s...)
 
Fără descriere a modificării
 
(Nu s-au afișat 4 versiuni intermediare efectuate de alți 2 utilizatori)
Linia 3: Linia 3:


==Date de intrare==
==Date de intrare==
Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii <span style=“color: red”>0</span.
Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii <span style=“color: red”>0</span>.


==Date de ieşire==
==Date de ieşire==
Programul afișează pe ecran numărul <span style=“color: red”> S</span>, reprezentând suma numerelor pare.
Programul afișează pe ecran numărul <span style=“color: red”> S</span>, reprezentând suma numerelor pare.
Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Date de intrare valide"'''
În caz contrar, se va afișa pe ecran: '''"Date de intrare invalide."'''


==Restricţii şi precizări==
==Restricţii şi precizări==
numerele citite aparține intervalului <span style=“color: red”> (-1.000.000; 1.000.000)</span
numerele citite aparține intervalului <span style=“color: red”> (-1.000.000; 1.000.000)</span>
valoarea absolută a sumei nu va depăși <span style=“color: red”> 1.000.000.000</span>
valoarea absolută a sumei nu va depăși <span style=“color: red”> 1.000.000.000</span>


Linia 15: Linia 18:
Intrare
Intrare


5 6 2 1 0
: 5 6 2 1 0


Ieșire
Ieșire
 
: Datele de intrare valide.
8
: 8




==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
def validate_input(value):
def validare_date(numere):
     try:
     for numar in numere:
         int(value)
         if numar < -1000000 or numar > 1000000:
        return True
            return False
     except ValueError:
     return True
        return False




def read_input():
def suma_numerelor_pare(numere):
     numbers = []
     suma = 0
    while True:
     for numar in numere:
        value = input()
         if numar % 2 == 0:
        if value == '0':
             suma += numar
            break
     print(suma)
        if validate_input(value):
            numbers.append(int(value))
        else:
            print("Invalid input. Please enter an integer.")
    return numbers
 
 
def calculate_even_sum(numbers):
    even_sum = 0
     for number in numbers:
         if number % 2 == 0:
             even_sum += number
     return even_sum




if __name__ == '__main__':
if __name__ == '__main__':
     numbers = read_input()
     numere = list(map(int, input().split()))
     even_sum = calculate_even_sum(numbers)
     if validare_date(numere):
     print(even_sum)
        print("Date de intrare valide")
        suma_numerelor_pare(numere)
     else:
        print("Date de intrare invalide")


</syntaxhighlight>
</syntaxhighlight>
 
==Explicatie cod:==
==Explicatie==
Funcția validare_date(numere) primește o listă de numere și verifică dacă fiecare număr din listă se încadrează în intervalul specificat [-1000000, 1000000]. Dacă există cel puțin un număr care nu respectă această condiție, funcția returnează False. În caz contrar, returnează True.
Aceasta implementare citeste datele de intrare pana cand se introduce valoarea zero, valideaza intrarea, calculeaza suma numerelor pare si afiseaza rezultatul. De asemenea, functia de validare ajuta la prevenirea erorilor, daca se introduce o valoare neasteptata. In final, functia "main" este implementata cu ajutorul constructiei "if name == 'main':", ceea ce inseamna ca aceasta va fi executata numai atunci cand fisierul este rulat ca program principal.
Funcția suma_numerelor_pare(numere) primește o listă de numere și calculează suma numerelor pare din acea listă. Se verifică fiecare număr din listă, iar dacă numărul este par (adică împărțit exact la 2), se adaugă la suma totală. La final, suma este afișată.
În blocul if __name__ == '__main__':, se citește de la intrare o serie de numere separate prin spațiu utilizând funcția input() și split(), și se stochează într-o listă numită numere. Apoi, se verifică dacă valorile citite sunt valide utilizând funcția validare_date(). Dacă valorile sunt valide, se afișează un mesaj de confirmare și se apelează funcția suma_numerelor_pare() pentru a calcula suma numerelor pare. În caz contrar, se afișează un mesaj de eroare.

Versiunea curentă din 29 iunie 2023 18:42

Cerinţa

Se citesc numere de la tastatură până la apariția lui zero. Să se determine suma celor pare.

Date de intrare

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

Date de ieşire

Programul afișează pe ecran numărul S, reprezentând suma numerelor pare. Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide"

În caz contrar, se va afișa pe ecran: "Date de intrare invalide."

Restricţii şi precizări

numerele citite aparține intervalului (-1.000.000; 1.000.000) valoarea absolută a sumei nu va depăși 1.000.000.000

Exemplu:

Intrare

5 6 2 1 0

Ieșire

Datele de intrare valide.
8


Rezolvare

def validare_date(numere):
    for numar in numere:
        if numar < -1000000 or numar > 1000000:
            return False
    return True


def suma_numerelor_pare(numere):
    suma = 0
    for numar in numere:
        if numar % 2 == 0:
            suma += numar
    print(suma)


if __name__ == '__main__':
    numere = list(map(int, input().split()))
    if validare_date(numere):
        print("Date de intrare valide")
        suma_numerelor_pare(numere)
    else:
        print("Date de intrare invalide")

Explicatie cod:

Funcția validare_date(numere) primește o listă de numere și verifică dacă fiecare număr din listă se încadrează în intervalul specificat [-1000000, 1000000]. Dacă există cel puțin un număr care nu respectă această condiție, funcția returnează False. În caz contrar, returnează True. Funcția suma_numerelor_pare(numere) primește o listă de numere și calculează suma numerelor pare din acea listă. Se verifică fiecare număr din listă, iar dacă numărul este par (adică împărțit exact la 2), se adaugă la suma totală. La final, suma este afișată. În blocul if __name__ == '__main__':, se citește de la intrare o serie de numere separate prin spațiu utilizând funcția input() și split(), și se stochează într-o listă numită numere. Apoi, se verifică dacă valorile citite sunt valide utilizând funcția validare_date(). Dacă valorile sunt valide, se afișează un mesaj de confirmare și se apelează funcția suma_numerelor_pare() pentru a calcula suma numerelor pare. În caz contrar, se afișează un mesaj de eroare.