0339 - Numere: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 20: | Line 20: | ||
== Exemplul 1 == | == Exemplul 1 == | ||
; Datele de intrare | ; Datele de intrare | ||
: N este: | |||
: 5 | : 5 | ||
:Numerele n sunt: | |||
: 7 4 2 5 8 | : 7 4 2 5 8 | ||
; Datele de ieșire | |||
: Datele sunt introduse corect. | : Datele sunt introduse corect. | ||
: 4 | : 4 | ||
<br> | <br> | ||
Line 30: | Line 32: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
#0339 | #0339 | ||
def validate_input(n, numere): | |||
if not (1 <= n <= 100): | |||
return False | |||
for nr in numere: | |||
if len(nr) > 9: | |||
return False | |||
return True | |||
def gaseste_primul_numar_par(numere): | def gaseste_primul_numar_par(numere): | ||
for nr in numere: | for nr in numere: | ||
Line 35: | Line 46: | ||
return nr | return nr | ||
return "IMPOSIBIL" | return "IMPOSIBIL" | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
n = int(input()) | n = int(input("N este:")) | ||
numere = input().split() | numere = input("Numerele n sunt:").split() | ||
if not ( | if not validate_input(n, numere): | ||
print("Datele nu corespund restricțiilor impuse.") | print("Datele nu corespund restricțiilor impuse.") | ||
else: | else: | ||
print("Datele sunt introduse corect.") | print("Datele sunt introduse corect.") | ||
print(gaseste_primul_numar_par(numere)) | print(gaseste_primul_numar_par(numere)) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 53: | Line 62: | ||
'''Explicatie cod:''' | '''Explicatie cod:''' | ||
Acest cod | Acest cod primește un număr `n` și o listă de `n` numere și verifică dacă datele de intrare sunt valide, adică `n` trebuie să fie între 1 și 100 și fiecare număr din lista `numere` trebuie să aibă cel mult 9 cifre. | ||
Funcția `validate_input(n, numere)` primește doi parametri, `n` și `numere`, și începe prin a verifica dacă `n` se află în intervalul permis, adică între 1 și 100, utilizând expresia booleană `1 <= n <= 100`. Dacă această condiție nu este îndeplinită, funcția returnează `False`, indicând faptul că datele de intrare nu sunt valide. | |||
În caz contrar, pentru fiecare număr din lista `numere`, funcția verifică dacă numărul are cel mult 9 cifre, utilizând expresia booleană `len(nr) > 9`. Dacă un număr depășește această limită, funcția returnează `False`, indicând din nou faptul că datele de intrare nu sunt valide. | |||
În cele din urmă, dacă toate verificările sunt trecute cu succes, funcția returnează `True`, indicând că datele de intrare sunt valide. | |||
Funcția gaseste_primul_numar_par(numere) primește | Funcția `gaseste_primul_numar_par(numere)` primește lista `numere` și caută primul număr par din listă. Pentru fiecare număr din listă, funcția verifică dacă numărul este par sau nu, utilizând expresia booleană `int(nr) % 2 == 0`. Dacă numărul este par, funcția returnează numărul respectiv. Dacă nu există niciun număr par în listă, funcția returnează string-ul "IMPOSIBIL". | ||
În | În funcția `main()`, întâi se solicită utilizatorului să introducă `n` și `numere`. Dacă datele de intrare nu sunt valide, se afișează mesajul "Datele nu corespund restricțiilor impuse." În caz contrar, se afișează mesajul "Datele sunt introduse corect.", iar funcția `gaseste_primul_numar_par(numere)` este apelată cu argumentul `numere`. Rezultatul este afișat apoi în consolă. |
Latest revision as of 09:23, 29 April 2023
Sursa: [1]
Cerinţa[edit | edit source]
Se dau n numere naturale. Determinaţi primul număr par dintre cele n numere.
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]
Programul afișează pe ecran numărul P, reprezentând primul număr par dintre cele n numere.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează primul număr par dintre cele n numere.
În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."
Restricţii şi precizări[edit | edit source]
- 1 ≤ n ≤ 100
cele n numere citite vor avea cel mult 9 cifre
Exemplul 1[edit | edit source]
- Datele de intrare
- N este:
- 5
- Numerele n sunt:
- 7 4 2 5 8
- Datele de ieșire
- Datele sunt introduse corect.
- 4
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 0339
def validate_input(n, numere):
if not (1 <= n <= 100): return False for nr in numere: if len(nr) > 9: return False return True
def gaseste_primul_numar_par(numere):
for nr in numere: if int(nr) % 2 == 0: return nr return "IMPOSIBIL"
if __name__ == '__main__':
n = int(input("N este:")) numere = input("Numerele n sunt:").split() if not validate_input(n, numere): print("Datele nu corespund restricțiilor impuse.") else: print("Datele sunt introduse corect.") print(gaseste_primul_numar_par(numere))
</syntaxhighlight>
Explicatie cod:
Acest cod primește un număr `n` și o listă de `n` numere și verifică dacă datele de intrare sunt valide, adică `n` trebuie să fie între 1 și 100 și fiecare număr din lista `numere` trebuie să aibă cel mult 9 cifre.
Funcția `validate_input(n, numere)` primește doi parametri, `n` și `numere`, și începe prin a verifica dacă `n` se află în intervalul permis, adică între 1 și 100, utilizând expresia booleană `1 <= n <= 100`. Dacă această condiție nu este îndeplinită, funcția returnează `False`, indicând faptul că datele de intrare nu sunt valide.
În caz contrar, pentru fiecare număr din lista `numere`, funcția verifică dacă numărul are cel mult 9 cifre, utilizând expresia booleană `len(nr) > 9`. Dacă un număr depășește această limită, funcția returnează `False`, indicând din nou faptul că datele de intrare nu sunt valide.
În cele din urmă, dacă toate verificările sunt trecute cu succes, funcția returnează `True`, indicând că datele de intrare sunt valide.
Funcția `gaseste_primul_numar_par(numere)` primește lista `numere` și caută primul număr par din listă. Pentru fiecare număr din listă, funcția verifică dacă numărul este par sau nu, utilizând expresia booleană `int(nr) % 2 == 0`. Dacă numărul este par, funcția returnează numărul respectiv. Dacă nu există niciun număr par în listă, funcția returnează string-ul "IMPOSIBIL".
În funcția `main()`, întâi se solicită utilizatorului să introducă `n` și `numere`. Dacă datele de intrare nu sunt valide, se afișează mesajul "Datele nu corespund restricțiilor impuse." În caz contrar, se afișează mesajul "Datele sunt introduse corect.", iar funcția `gaseste_primul_numar_par(numere)` este apelată cu argumentul `numere`. Rezultatul este afișat apoi în consolă.