0054 - Maxim

From Bitnami MediaWiki
Revision as of 17:19, 29 March 2023 by Andor Giulia (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursă: [1]

Cerință[edit | edit source]

Se citesc numere de la tastatură până la apariția lui zero. Să se determine cea mai mare valoare citită.

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 MAX, reprezentând cea mai mare valoare 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 maximului
  • dacă prima valoare introdusă este zero, se va afișa mesajul NU EXISTA

Exemple[edit | edit source]

Exemplu 1[edit | edit source]

Intrare
5 6 2 1 0
Ieșire
6

Exemplu 2[edit | edit source]

Intrare
-2000000 3232453 4673829
Ieșire
Datele nu sunt comform restricțiilor impuse

Exemplu 3[edit | edit source]

Intrare
0 3 4 5 6
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_maxim(numere):

   if len(numere) == 0:
       return None
   numar_max = numere[0]
   for n in numere:
       if n > numar_max:
           numar_max = n
   return numar_max

if __name__ == '__main__':

   n = verificare()
   MAX = numar_maxim(n)
   if MAX is None:
       print("NU EXISTA.")
   else:
       print("Cel mai mare număr este:", MAX)

</syntaxhighlight>

Explicații[edit | edit source]

   Acest cod definește două funcții: verificare() și numar_maxim().
   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_maxim() primește o listă de numere și returnează numărul maxim din listă. Dacă lista este goală, 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_maxim() pentru a găsi cel mai mare număr din listă. Dacă lista este goală, se afișează mesajul "NU EXISTA.", altfel se afișează cel mai mare număr găsit în listă.