4281 - Min 2 Cif: Difference between revisions
Andor Giulia (talk | contribs) Pagină nouă: == Rezolvare == <syntaxhighlight lang="python" line="1"> min_two_digit = None # inițializăm cu None pentru a verifica mai târziu dacă am găsit sau nu un număr cu 2 cifre while True: n = int(input()) # citim un număr if n == 0: # dacă am ajuns la sfârșitul secvenței, ieșim din buclă break if 10 <= n <= 99: # dacă n are două cifre if min_two_digit is None or n < min_two_digit: # dacă n este mai mic decât minimul găsit până ac... |
MiclausIoana (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
Sursă: [https://www.pbinfo.ro/probleme/4281/min2cif] | |||
== Cerință == | |||
Se citesc de la tastatură numere naturale până la apariția lui zero. Să se determine cel mic număr citit care are două cifre. | |||
== Date de intrare == | |||
Programul citește de la tastatură numere naturale. Citirea se încheie la introducerea valorii '''0'''. | |||
== Date de ieșire == | |||
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.". Programul afișează pe ecran '''M''', cel mai mic număr citit care are două cifre. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". | |||
== Restricții și precizări == | |||
* numerele citite vor fi mai mici decât '''10000''' | |||
* dacă niciun număr citit nu are două cifre, se va afișa '''NU EXISTA''' | |||
== Exemple == | |||
=== Exemplu 1 === | |||
; Date de intrare | |||
:105 63 20 4 0 | |||
; Date de ieșire | |||
: 20 | |||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
def verificare(): | |||
while True: | numere = [] | ||
while True: | |||
numar = input("Introduceti o valoare: ") | |||
try: | |||
numar = int(numar) | |||
if | if numar == 0: | ||
break | |||
if | elif 10 <= numar <= 99: | ||
print("Datele sunt corecte.") | |||
else: | numere.append(numar) | ||
else: | |||
print("Datele nu sunt conform restricțiilor impuse.") | |||
except ValueError: | |||
print("Trebuie respectate cerintele.") | |||
return numere | |||
def Min2Cif(numere): | |||
if len(numere) == 0: | |||
return None | |||
numar_min = numere[0] | |||
for n in numere: | |||
if n < numar_min: | |||
numar_min = n | |||
return numar_min | |||
if _name_ == '_main_': | |||
n = verificare() | |||
MIN = Min2Cif(n) | |||
if MIN is None: | |||
print("NU EXISTA.") | |||
else: | |||
print("Cel mai mic număr cu două cifre este:", MIN) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicatie == | |||
Acest cod are ca scop găsirea celui mai mic număr cu două cifre dintr-o listă de numere întregi citite de la tastatură. | |||
Funcția verificare inițializează o listă goală numere și utilizează o buclă while infinită pentru a citi de la tastatură valori până când se introduce valoarea zero. În interiorul buclei, se verifică dacă valoarea introdusă este un număr întreg prin încercarea conversiei la tipul int. Dacă conversia nu este posibilă, se afișează un mesaj de eroare și se continuă bucla. Dacă conversia este posibilă, se verifică dacă numărul respectă cerințele impuse, respectiv să fie un număr cu două cifre (între 10 și 99). Dacă nu respectă cerințele, se afișează un mesaj de eroare și se continuă bucla. În caz contrar, se afișează un mesaj de confirmare și se adaugă numărul la lista numere. | |||
Funcția Min2Cif primește ca argument lista numere și parcurge fiecare element din listă pentru a găsi cel mai mic număr cu două cifre. Dacă lista este goală, se returnează None. | |||
Blocul if _name_ == '_main_': este folosit pentru a rula codul din funcția main doar atunci când acesta este executat ca program și nu ca modul importat în alt cod. Se apelează funcția verificare pentru a citi valori de la tastatură și se salvează rezultatul în variabila n. Se apelează apoi funcția Min2Cif cu argumentul n și se salvează rezultatul în variabila MIN. Dacă MIN este None, se afișează un mesaj că "NU EXISTA." Altfel, se afișează un mesaj care indică cel mai mic număr cu două cifre găsit. |
Latest revision as of 09:38, 26 April 2023
Sursă: [1]
Cerință[edit | edit source]
Se citesc de la tastatură numere naturale până la apariția lui zero. Să se determine cel mic număr citit care are două cifre.
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: "Datele sunt corecte.". Programul afișează pe ecran M, cel mai mic număr citit care are două cifre. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricții și precizări[edit | edit source]
- numerele citite vor fi mai mici decât 10000
- dacă niciun număr citit nu are două cifre, se va afișa NU EXISTA
Exemple[edit | edit source]
Exemplu 1[edit | edit source]
- Date de intrare
- 105 63 20 4 0
- Date de ieșire
- 20
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1"> def verificare():
numere = [] while True: numar = input("Introduceti o valoare: ") try: numar = int(numar) if numar == 0: break elif 10 <= numar <= 99: print("Datele sunt corecte.") numere.append(numar) else: print("Datele nu sunt conform restricțiilor impuse.") except ValueError: print("Trebuie respectate cerintele.") return numere
def Min2Cif(numere):
if len(numere) == 0: return None numar_min = numere[0] for n in numere: if n < numar_min: numar_min = n return numar_min
if _name_ == '_main_':
n = verificare() MIN = Min2Cif(n) if MIN is None: print("NU EXISTA.") else: print("Cel mai mic număr cu două cifre este:", MIN)
</syntaxhighlight>
Explicatie[edit | edit source]
Acest cod are ca scop găsirea celui mai mic număr cu două cifre dintr-o listă de numere întregi citite de la tastatură.
Funcția verificare inițializează o listă goală numere și utilizează o buclă while infinită pentru a citi de la tastatură valori până când se introduce valoarea zero. În interiorul buclei, se verifică dacă valoarea introdusă este un număr întreg prin încercarea conversiei la tipul int. Dacă conversia nu este posibilă, se afișează un mesaj de eroare și se continuă bucla. Dacă conversia este posibilă, se verifică dacă numărul respectă cerințele impuse, respectiv să fie un număr cu două cifre (între 10 și 99). Dacă nu respectă cerințele, se afișează un mesaj de eroare și se continuă bucla. În caz contrar, se afișează un mesaj de confirmare și se adaugă numărul la lista numere.
Funcția Min2Cif primește ca argument lista numere și parcurge fiecare element din listă pentru a găsi cel mai mic număr cu două cifre. Dacă lista este goală, se returnează None.
Blocul if _name_ == '_main_': este folosit pentru a rula codul din funcția main doar atunci când acesta este executat ca program și nu ca modul importat în alt cod. Se apelează funcția verificare pentru a citi valori de la tastatură și se salvează rezultatul în variabila n. Se apelează apoi funcția Min2Cif cu argumentul n și se salvează rezultatul în variabila MIN. Dacă MIN este None, se afișează un mesaj că "NU EXISTA." Altfel, se afișează un mesaj care indică cel mai mic număr cu două cifre găsit.