3985 - Suma C2: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
 
(Nu s-au afișat 15 versiuni intermediare efectuate de un alt utilizator)
Linia 7: Linia 7:


== Date de ieșire ==  
== Date de ieșire ==  
Programul va afișa pe ecran,  mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul '''P''' , reprezentând produsul primelor '''n''' pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."
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 ==
Linia 15: Linia 15:
== Exemplul 1 ==
== Exemplul 1 ==
; Intrare
; Intrare
: 4
: 5
: 1000 20 3 41 576
; Ieșire
; Ieșire
: Datele corespund cerințelor.
: Datele introduse corespund cerintelor.
: 576
: 61
<br>
<br>


== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
: 16
: 2
: 541 99
; Ieșire
; Ieșire
: Datele introduse nu corespund cerințelor.
: Datele introduse corespund cerintelor.  
: 99
<br>
<br>
== Exemplul 3 ==
== Exemplul 3 ==
; Intrare
; Intrare
: 1001
: 1001
; Ieșire
; Ieșire
: Eroare: Numărul n trebuie să fie între 1 și 1000.
: Datele introduse nu corespund cerintelor.
<br>
<br>


Linia 37: Linia 41:
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#3985
#3985
def suma_doua_cifre(numere):
def validare_numar(n):
     S = 0
     try:
    for num in numere:
        n = int(n)
         if len(str(num)) == 2:
         if not (1 <= n <= 1000):
             S += num
             print("Datele introduse nu corespund cerintelor.")
     return S
            exit()
        return n
     except ValueError as e:
        print("Eroare:", e)
        return None
 


try:
def validare_numere(n):
    n = int(input("Introduceți numărul de numere naturale (1 ≤ n ≤ 1000): "))
    if not (1 <= n <= 1000):
        raise ValueError("Numărul n trebuie să fie între 1 și 1000.")
except ValueError as e:
    print("Eroare:", e)
else:
     numere = []
     numere = []
     for i in range(n):
     for i in range(n):
         try:
         try:
             num = int(input("Introduceți un număr natural mai mic decât 1.000.000.000: "))
             num = int(input("Introduceți un număr natural mai mic decât 1.000.000.000: "))
             if num >= 1000000000:
             if not (0 <= num < 1000000000):
                 raise ValueError("Numărul trebuie să fie mai mic decât 1.000.000.000.")
                 print("Datele introduse nu corespund cerintelor.")
                exit()
            if len(str(num)) == 2:
                numere.append(num)
         except ValueError as e:
         except ValueError as e:
             print("Eroare:", e)
             print("Eroare:", e)
             break
             break
        else:
    return numere
            numere.append(num)


    S = suma_doua_cifre(numere)
    print("Suma numerelor cu două cifre este:", S)


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>
</syntaxhighlight>
==Explicatie rezolvare==
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.

Versiunea curentă din 14 mai 2023 21:10

Sursa: [1]

Cerinţa

Se dau n numere naturale. Calculați suma celor care au exact două cifre.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

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

  • 1 ⩽ n ⩽ 1000
  • cele n numere citite vor fi mai mici decât 1.000.000.000.

Exemplul 1

Intrare
5
1000 20 3 41 576
Ieșire
Datele introduse corespund cerintelor.
61


Exemplul 2

Intrare
2
541 99
Ieșire
Datele introduse corespund cerintelor.
99


Exemplul 3

Intrare
1001
Ieșire
Datele introduse nu corespund cerintelor.


Rezolvare

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

Explicatie rezolvare

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.