4281 - Min 2 Cif

De la Universitas MediaWiki

Sursă: [1]

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

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)

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.