0339 - Numere: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
 
(6 intermediate revisions by the same user not shown)
Line 19: Line 19:


== Exemplul 1 ==
== Exemplul 1 ==
; Intrare
; Datele de intrare
: N este:
: 5
: 5
:Numerele n sunt:
: 7 4 2 5 8
: 7 4 2 5 8
; Ieșire
; Datele de ieșire
: Datele sunt introduse corect.
: 4
: 4
<br>
<br>
Line 29: 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 34: 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 (1 <= n <= 100):
     if not validate_input(n, numere):
         print("Invalid value for n")
         print("Datele nu corespund restricțiilor impuse.")
     else:
     else:
         for nr in numere:
         print("Datele sunt introduse corect.")
            if len(nr) > 9:
                print("One or more numbers have more than 9 digits")
                exit()
         print(gaseste_primul_numar_par(numere))
         print(gaseste_primul_numar_par(numere))


</syntaxhighlight>
</syntaxhighlight>
Line 51: Line 62:
'''Explicatie cod:'''
'''Explicatie cod:'''


Acest cod are ca scop să găsească primul număr par dintr-o listă dată și să îl afișeze.
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 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 ca parametru o listă de numere, parcurge fiecare element din listă și verifică dacă acesta este par (divizibil cu 2). Dacă găsește un astfel de număr, îl va returna, altfel va returna șirul de caractere "IMPOSIBIL".
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 cadrul blocului if __name__ == '__main__', se citesc valorile de intrare n și numere, reprezentând numărul de elemente din listă și lista propriu-zisă. Se verifică dacă n respectă condițiile cerute și dacă fiecare număr din listă are cel mult 9 cifre. Dacă nu sunt respectate aceste condiții, se va afișa un mesaj corespunzător și se va ieși din program. În caz contrar, se va apela funcția gaseste_primul_numar_par și se va afișa rezultatul.
Î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>

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