0339 - Numere: Diferență între versiuni

De la Universitas MediaWiki
 
(Nu s-au afișat 10 versiuni intermediare efectuate de același utilizator)
Linia 9: Linia 9:
Programul afișează pe ecran numărul '''P''', reprezentând primul număr par dintre cele '''n''' numere.
Programul afișează pe ecran numărul '''P''', reprezentând primul număr par dintre cele '''n''' numere.


Dacă datele sunt introduse corect, programul va rula.
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 cazul în care datele nu respectă restricțiile, se va afișa pe ecran: ''' "Datele nu corespund restricțiilor impuse.".'''
În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."


== Restricţii şi precizări ==
== Restricţii şi precizări ==
* 0 < '''n''' ⩽ 10
*1 ≤ '''n''' ≤ 100
 
cele n numere citite vor avea cel mult 9 cifre


== Exemplul 1 ==
== Exemplul 1 ==
; Intrare
; Datele de intrare
: N este:
: 5
:Numerele n sunt:
: 7 4 2 5 8
; Datele de ieșire
: Datele sunt introduse corect.
: 4
: 4
; Ieșire
: Datele corespund cerințelor.
: 576
<br>
<br>


== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#4273
#0339
def patrate_perfecte(n):
def validate_input(n, numere):
     patrate = []
     if not (1 <= n <= 100):
    i = 1
         return False
    while len(patrate) < n:
     for nr in numere:
        patrat = i * i
         if len(nr) > 9:
        patrate.append(patrat)
            return False
         i += 1
     return True
    return patrate
 
 
def calculeaza(numbers):
    product = 1
     for number in numbers:
         product *= number
     return product




def validare_numar(n):
def gaseste_primul_numar_par(numere):
     if n < 1 or n > 10:
     for nr in numere:
        return False
        if int(nr) % 2 == 0:
     return True
            return nr
     return "IMPOSIBIL"




if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input("Introduceți numărul n: "))
     n = int(input("N este:"))
     if not validare_numar(n):
    numere = input("Numerele n sunt:").split()
         print("Datele introduse nu corespund cerintelor.")
     if not validate_input(n, numere):
         print("Datele nu corespund restricțiilor impuse.")
     else:
     else:
        squares = patrate_perfecte(n)
         print("Datele sunt introduse corect.")
        product = calculeaza(squares)
         print(gaseste_primul_numar_par(numere))
         print("Datele introduse corespund cerintelor.")
         print(product)




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

Versiunea curentă din 29 aprilie 2023 09:23

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

#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))

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