0053 - Cate Impare

From Bitnami MediaWiki
Revision as of 18:54, 29 June 2023 by Paul Ungur (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa[edit | edit source]

Se citesc numere de la tastatură până la apariția lui zero. Să se determine câte dintre ele erau impare.

Date de intrare[edit | edit source]

Programul citește de la tastatură numere naturale. Citirea se încheie la introducerea valorii 0.

Date de ieşire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi programul afișează pe ecran numărul C, reprezentând numărul de numere impare citite. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Date de intrare invalide".


Restricţii şi precizări[edit | edit source]

numerele citite aparțin intervalului [0; 1.000.000.000)

Exemplu:[edit | edit source]

Intrare

5 6 2 1 0

Ieșire

Date de intrare valide
2

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(numere):

   for numar in numere:
       if numar < 0 or numar > 1_000_000_000:
           return False
   return True


def cate_impare(numere):

   numere_impare = 0
   for numar in numere:
       if numar % 2 == 1:
           numere_impare += 1
   print(numere_impare)


if __name__ == '__main__':

   numere = list(map(int, input().split()))
   if validare_date(numere):
       print("Date de intrare valide")
       cate_impare(numere)
   else:
       print("Date de intrare invalide")

</syntaxhighlight>

Explicatie cod:[edit | edit source]

Funcția validare_date(numere) primește o listă de numere și verifică dacă fiecare număr din listă se încadrează în intervalul specificat [0, 1_000_000_000]. Dacă există cel puțin un număr care nu respectă această condiție, funcția returnează False. În caz contrar, returnează True. Funcția cate_impare(numere) primește o listă de numere și numără câte dintre acestea sunt impare. Se verifică fiecare număr din listă, iar dacă numărul este impar (adică are restul împărțirii la 2 diferit de zero), se incrementează un contor. La final, se afișează numărul de numere impare găsite. În blocul if __name__ == '__main__':, se citește de la intrare o serie de numere separate prin spațiu utilizând funcția input() și split(), și se stochează într-o listă numită numere. Apoi, se verifică dacă valorile citite sunt valide utilizând funcția validare_date(). Dacă valorile sunt valide, se afișează un mesaj de confirmare și se apelează funcția cate_impare() pentru a număra numerele impare. În caz contrar, se afișează un mesaj de eroare.