0339 - Numere
Sursa: [1]
Cerinţa
Se dau n numere naturale. Determinaţi primul număr par dintre cele n numere.
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
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
- 1 ≤ n ≤ 100
cele n numere citite vor avea cel mult 9 cifre
Exemplul 1
- Datele de intrare
- N este:
- 5
- Numerele n sunt:
- 7 4 2 5 8
- Datele de ieșire
- Datele sunt introduse corect.
- 4
Rezolvare
<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ă.