0002 - Suma N: Difference between revisions
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 & | <p>0 ≤ n ≤ 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> | ||
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 | |||
def calculeaza_suma(numere): | |||
suma = 0 | suma = 0 | ||
for numar in numere: | for numar in numere: | ||
suma += int(numar) | suma += int(numar) | ||
print(suma) | |||
if __name__ == "__main__": | |||
n = int(input()) | |||
numere = input().split(' ') | numere = input().split(' ') | ||
if validare_date(n, numere): | |||
print("Date de intrare valide") | |||
calculeaza_suma(numere) | |||
else: | |||
print("Date de intrare invalide") | |||
print( | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | ==Explicatie cod:== | ||
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". | |||
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".