0339 - Numere

From Bitnami MediaWiki
Revision as of 09:23, 29 April 2023 by Sinn Erich (talk | contribs) (→‎Rezolvare)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>

  1. 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ă.