3985 - Suma C2: Difference between revisions
Dragos1234 (talk | contribs) |
Nagy Lenard (talk | contribs) No edit summary |
||
(2 intermediate revisions by one other user not shown) | |||
Line 7: | Line 7: | ||
== Date de ieșire == | == Date de ieșire == | ||
Dacă datele introduse sunt corecte, atunci pe ecran se va afișa "Datele introduse corespund cerintelor." apoi pe un rând nou se va afișa numărul S, reprezentând suma numerelor care au două cifre. În caz contrar pe ecran se va afișa mesajul "Datele introduse nu corespund.". | |||
== Restricţii şi precizări == | == Restricţii şi precizări == |
Latest revision as of 21:10, 14 May 2023
Sursa: [1]
Cerinţa[edit | edit source]
Se dau n numere naturale. Calculați suma celor care au exact două cifre.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieșire[edit | edit source]
Dacă datele introduse sunt corecte, atunci pe ecran se va afișa "Datele introduse corespund cerintelor." apoi pe un rând nou se va afișa numărul S, reprezentând suma numerelor care au două cifre. În caz contrar pe ecran se va afișa mesajul "Datele introduse nu corespund.".
Restricţii şi precizări[edit | edit source]
- 1 ⩽ n ⩽ 1000
- cele n numere citite vor fi mai mici decât 1.000.000.000.
Exemplul 1[edit | edit source]
- Intrare
- 5
- 1000 20 3 41 576
- Ieșire
- Datele introduse corespund cerintelor.
- 61
Exemplul 2[edit | edit source]
- Intrare
- 2
- 541 99
- Ieșire
- Datele introduse corespund cerintelor.
- 99
Exemplul 3[edit | edit source]
- Intrare
- 1001
- Ieșire
- Datele introduse nu corespund cerintelor.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 3985
def validare_numar(n):
try: n = int(n) if not (1 <= n <= 1000): print("Datele introduse nu corespund cerintelor.") exit() return n except ValueError as e: print("Eroare:", e) return None
def validare_numere(n):
numere = [] for i in range(n): try: num = int(input("Introduceți un număr natural mai mic decât 1.000.000.000: ")) if not (0 <= num < 1000000000): print("Datele introduse nu corespund cerintelor.") exit() if len(str(num)) == 2: numere.append(num) except ValueError as e: print("Eroare:", e) break return numere
if __name__ == "__main__":
n = input("Introduceți numărul de numere naturale (1 ≤ n ≤ 1000): ") n = validare_numar(n) if n is not None: numere = validare_numere(n) S = sum(numere) print("Datele introduse corespund cerintelor\n",S)
</syntaxhighlight>
Explicatie rezolvare[edit | edit source]
Acest program este o implementare a unei aplicații care primește un număr "n" și "n" numere naturale mai mici decât 1.000.000.000. Programul validează întâi numărul "n" și apoi validează cele "n" numere introduse de utilizator. Dacă numărul "n" și numerele introduse trec de verificările de validare, atunci suma numerelor este afișată ca rezultat.
Mai precis, funcția "validare_numar" verifică dacă numărul "n" este un întreg și dacă este între 1 și 1000. Dacă nu este, atunci programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii "exit()". Funcția "validare_numere" primește numărul "n" și verifică fiecare dintre cele "n" numere introduse de utilizator. Verificările includ dacă numerele sunt întregi și dacă sunt mai mici decât 1.000.000.000. Dacă numărul are exact două cifre, atunci este adăugat la o listă de numere. Dacă apare o eroare în timpul verificărilor, programul afișează un mesaj de eroare și se oprește cu ajutorul instrucțiunii "break". În final, suma numerelor valide este afișată ca rezultat, împreună cu un mesaj care confirmă că datele introduse au corespuns cerințelor.