0055 - Minim Pozitive: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/55/minimpozitive] == Cerință == Se citesc de la tastatură numere întregi până la apariția lui zero. Să se determine cea mai mică dintre valorile pozitive citite. == Date de intrare == Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii '''0'''. == Date de ieșire == Programul afișează pe ecran numărul '''MIN''', reprezentând cea mai mică valoare pozitivă citită. == Restricții...
 
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 5: Line 5:
Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii '''0'''.
Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii '''0'''.
== Date de ieșire ==
== Date de ieșire ==
Programul afișează pe ecran numărul '''MIN''', reprezentând cea mai mică valoare pozitivă citită.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.".Programul afișează pe ecran numărul '''MIN''', reprezentând cea mai mică valoare pozitivă citită. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
== Restricții și precizări ==
== Restricții și precizări ==
* numerele citite aparțin intervalului '''(-1.000.000,1.000.000)''';
* numerele citite aparțin intervalului '''(-1.000.000,1.000.000)''';
* valoarea zero, care încheie citirile, nu se ia în considerare la determinarea minimului;
* valoarea zero, care încheie citirile, nu se ia în considerare la determinarea minimului;
* dacă printre valorile citite nu se află valori pozitive, se va afișa mesajul '''NU EXISTA'''.
* dacă printre valorile citite nu se află valori pozitive, se va afișa mesajul '''NU EXISTA'''.
== Exemplu ==
== Exemple ==
=== Exemplu 1 ===
; Intrare
; Intrare
: 5 6 -2 1 0
: 5 6 -2 1 0
; Ieșire
; Ieșire
: 1
: 1
=== Exemplu 2 ===
; Intrare
: -3094876 3567253 -4567825
; Ieșire
: Datele nu sunt comform restricțiilor impuse
=== Exemplu 3 ===
; Intrare
: 0 4 5 8
; Ieșire
: NU EXISTA
== Rezolvare ==
<syntaxhighlight lang="python" line="1">
def verificare():
    numere = []
    while True:
        numar = input("Introduceti o valoare: ")
        try:
            numar = int(numar)
            if numar == 0:
                break
            elif numar > -1000000 and numar < 1000000:
                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 numar_minim(numere):
    if len(numere) == 0:
        return None
    numar_min = numere[0]
    for n in numere:
        if n < numar_min and n>=1:
            numar_min = n
    return numar_min
if __name__ == '__main__':
    n = verificare()
    MIN = numar_minim(n)
    if MIN is None:
        print("NU EXISTA.")
    else:
        print("Cel mai mic număr este:", MIN)
</syntaxhighlight>
== Explicații ==
  Acest cod definește două funcții: verificare() și numar_minim().
  Funcția verificare() primește valori de la utilizator până când este introdusă valoarea 0, verifică dacă valorile sunt numere întregi valide și se încadrează în intervalul [-1000000, 1000000], și le adaugă la o listă numere. Funcția returnează lista de numere.
  Funcția numar_minim() primește o listă de numere și returnează numărul minim din listă, care este mai mare sau egal cu 1. Dacă lista este goală sau nu există un astfel de număr în listă, se returnează None.
  În blocul if __name__ == '__main__':, codul apelează funcția verificare() pentru a obține o listă de numere de la utilizator, apoi apelează funcția numar_minim() pentru a găsi cel mai mic număr din listă care este pozitiv. Dacă lista este goală sau nu există un astfel de număr în listă, se afișează mesajul "NU EXISTA.", altfel se afișează cel mai mic număr găsit în listă.

Latest revision as of 17:29, 29 March 2023

Sursă: [1]

Cerință[edit | edit source]

Se citesc de la tastatură numere întregi până la apariția lui zero. Să se determine cea mai mică dintre valorile pozitive citite.

Date de intrare[edit | edit source]

Programul citește de la tastatură numere întregi. 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 numărul MIN, reprezentând cea mai mică valoare pozitivă citită. Î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 aparțin intervalului (-1.000.000,1.000.000);
  • valoarea zero, care încheie citirile, nu se ia în considerare la determinarea minimului;
  • dacă printre valorile citite nu se află valori pozitive, se va afișa mesajul NU EXISTA.

Exemple[edit | edit source]

Exemplu 1[edit | edit source]

Intrare
5 6 -2 1 0
Ieșire
1

Exemplu 2[edit | edit source]

Intrare
-3094876 3567253 -4567825
Ieșire
Datele nu sunt comform restricțiilor impuse

Exemplu 3[edit | edit source]

Intrare
0 4 5 8
Ieșire
NU EXISTA

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 numar > -1000000 and numar < 1000000:
               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 numar_minim(numere):

   if len(numere) == 0:
       return None
   numar_min = numere[0]
   for n in numere:
       if n < numar_min and n>=1:
           numar_min = n
   return numar_min

if __name__ == '__main__':

   n = verificare()
   MIN = numar_minim(n)
   if MIN is None:
       print("NU EXISTA.")
   else:
       print("Cel mai mic număr este:", MIN)

</syntaxhighlight>

Explicații[edit | edit source]

  Acest cod definește două funcții: verificare() și numar_minim().
  Funcția verificare() primește valori de la utilizator până când este introdusă valoarea 0, verifică dacă valorile sunt numere întregi valide și se încadrează în intervalul [-1000000, 1000000], și le adaugă la o listă numere. Funcția returnează lista de numere.
  Funcția numar_minim() primește o listă de numere și returnează numărul minim din listă, care este mai mare sau egal cu 1. Dacă lista este goală sau nu există un astfel de număr în listă, se returnează None.

  În blocul if __name__ == '__main__':, codul apelează funcția verificare() pentru a obține o listă de numere de la utilizator, apoi apelează funcția numar_minim() pentru a găsi cel mai mic număr din listă care este pozitiv. Dacă lista este goală sau nu există un astfel de număr în listă, se afișează mesajul "NU EXISTA.", altfel se afișează cel mai mic număr găsit în listă.