0002 - Suma N: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/161/inlocuire 0002 - Suma N] ---- == Cerinţa == Se dau '''n''' numere naturale nenule. Calculaţi suma celor '''n''' numere date. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, separate prin spaţii, reprezentând elementele vectorului. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran se va afișa: '''"Datele sunt introduse corect."''', apoi se va afisa...
 
Paul Ungur (talk | contribs)
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 11: Line 11:


== Restricţii şi precizări ==
== Restricţii şi precizări ==
<p>0 &l; n &l; 1000</p>
<p>0 &le; n &le; 1000</p>
* elementele vectorului vor fi mai mici decât '''1000'''
* elementele vectorului vor fi mai mici decât '''1000'''
* vectorul nu va contine niciun element nul
* vectorul nu va contine niciun element nul
Line 27: Line 27:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# 0161
def validare_date(n, c):
    flag = True
    if int(n) < 0 or int(n) > 1000:
        flag = False
    for numar in c:
        if not 0 <= int(numar) < 1000:
            flag = False
    return flag


def calculeaza_suma(numere: list) -> int:
 
def calculeaza_suma(numere):
     suma = 0
     suma = 0
     for numar in numere:
     for numar in numere:
         suma += int(numar)
         suma += int(numar)
     return suma
     print(suma)




def citeste_numere() -> list:
if __name__ == "__main__":
    n = int(input())
     numere = input().split(' ')
     numere = input().split(' ')
     for numar in numere:
     if validare_date(n, numere):
        if not numar.isdigit():
        print("Date de intrare valide")
            print('Datele nu corespund restricțiilor impuse.')
        calculeaza_suma(numere)
            return []
     else:
    print('Datele sunt introduse corect.')
         print("Date de intrare invalide")
    return numere
 
 
def main():
    n = int(input())
     numere = citeste_numere()
    if numere:
        suma = calculeaza_suma(numere)
         print(suma)
 
 
if __name__ == "__main__":
    main()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
</syntaxhighlight>
</syntaxhighlight>
== Explicație rezolvare==
==Explicatie cod:==
  Această soluție Python are următoarele caracteristici:
Funcția validare_date(n, c) primește un număr n și o listă de numere c. Verifică dacă numărul n se află în intervalul [0, 1000], iar fiecare număr din lista c se află în intervalul [0, 1000]. Dacă există vreun 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 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().
    Utilizează trei funcții separate pentru a citi numerele, a calcula suma și a afișa rezultatul;
În blocul if __name__ == "__main__":, se citește un număr n utilizând funcția int(input()). Apoi, se citește o listă de numere numere utilizând input().split(' '), care separă numerele citite după spațiu și le stochează într-o listă. Apoi, se validează datele de intrare utilizând funcția validare_date(n, 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 numerele din listă și a o afișa. Dacă datele nu sunt valide, se afișează mesajul "Date de intrare invalide".
    Funcția citeste_numere citeste numerele de la intrare, le separă într-o listă și verifică dacă toate sunt numere întregi;
    Funcția calculeaza_suma primește lista de numere și calculează suma lor folosind un loop for;
    Funcția main primește numărul de numere și apelează citeste_numere pentru a citi numerele și a verifica dacă sunt valide; apoi         
    calculează suma și o afișează dacă lista de numere este nevidă.
  Astfel, programul primește un număr n și o listă de n numere și returnează suma numerelor din listă, sau afișează un mesaj de eroare dacă datele de intrare nu sunt corecte.

Latest revision as of 17:03, 15 May 2023

Sursa: 0002 - Suma N


Cerinţa[edit | edit source]

Se dau n numere naturale nenule. Calculaţi suma celor n numere date.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.

Date de ieșire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi se va afisa suma celor n numere pe urmatorul rand. Î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 | edit source]

0 ≤ n ≤ 1000

  • elementele vectorului vor fi mai mici decât 1000
  • vectorul nu va contine niciun element nul

Exemple[edit | edit source]

Exemplul 1[edit | edit source]

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


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(n, c):

   flag = True
   if int(n) < 0 or int(n) > 1000:
       flag = False
   for numar in c:
       if not 0 <= int(numar) < 1000:
           flag = False
   return flag


def calculeaza_suma(numere):

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


if __name__ == "__main__":

   n = int(input())
   numere = input().split(' ')
   if validare_date(n, numere):
       print("Date de intrare valide")
       calculeaza_suma(numere)
   else:
       print("Date de intrare invalide")

</syntaxhighlight>

Explicatie cod:[edit | edit source]

Funcția validare_date(n, c) primește un număr n și o listă de numere c. Verifică dacă numărul n se află în intervalul [0, 1000], iar fiecare număr din lista c se află în intervalul [0, 1000]. Dacă există vreun 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 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 un număr n utilizând funcția int(input()). Apoi, se citește o listă de numere numere utilizând input().split(' '), care separă numerele citite după spațiu și le stochează într-o listă. Apoi, se validează datele de intrare utilizând funcția validare_date(n, 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 numerele din listă și a o afișa. Dacă datele nu sunt valide, se afișează mesajul "Date de intrare invalide".