0054 - Maxim: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
Line 11: Line 11:
* dacă prima valoare introdusă este zero, se va afișa mesajul '''NU EXISTA'''
* dacă prima valoare introdusă este zero, se va afișa mesajul '''NU EXISTA'''
== Exemple ==
== Exemple ==
== Exemplu 1 ==
=== Exemplu 1 ===
; Intrare
; Intrare
: 5 6 2 1 0
: 5 6 2 1 0
; Ieșire  
; Ieșire  
: 6
: 6
== Exemplu 2 ==
=== Exemplu 2 ===
; Intrare
; Intrare
: -2000000 3232453 4673829
: -2000000 3232453 4673829
; Ieșire
; Ieșire
: Datele nu sunt comform restricțiilor impuse
: Datele nu sunt comform restricțiilor impuse
== Exemplu 3 ==
=== Exemplu 3 ===
; Intrare
; Intrare
: 0 3 4 5 6
: 0 3 4 5 6

Latest revision as of 17:19, 29 March 2023

Sursă: [1]

Cerință[edit]

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]

Programul citește de la tastatură numere întregi. Citirea se încheie la introducerea valorii 0.

Date de ieșire[edit]

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]

  • 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]

Exemplu 1[edit]

Intrare
5 6 2 1 0
Ieșire
6

Exemplu 2[edit]

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

Exemplu 3[edit]

Intrare
0 3 4 5 6
Ieșire
NU EXISTA

Rezolvare[edit]

<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]

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