0054 - Maxim: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
 
(2 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 '''MAX''', reprezentând cea mai mare valoare citită.
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 ==
== 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 maximului
* 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'''
* dacă prima valoare introdusă este zero, 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  
: 6
: 6
=== Exemplu 2 ===
; Intrare
: -2000000 3232453 4673829
; Ieșire
: Datele nu sunt comform restricțiilor impuse
=== Exemplu 3 ===
; Intrare
: 0 3 4 5 6
; Ieșire
: NU EXISTA
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
MAX = 0
def verificare():
valoare = input("Introduceți valorile:")
    numere = []
numere = valoare.split()
    while True:
for n in numere:
        numar = input("Introduceti o valoare: ")
     n = int(n)
        try:
     if n == 0:
            numar = int(numar)
         break  # oprește bucla dacă întâlnește valoarea 0
            if numar == 0:
     if n >= MAX:
                break
        MAX = n
            elif numar > -1000000 and numar < 1000000:
if MAX != 0:
                print("Datele sunt corecte.")
    print("Valoarea maximă este: ",MAX)
                numere.append(numar)
else:
            else:
    print("NU EXISTA")
                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>
</syntaxhighlight>
== Explicații ==
    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ă.

Latest revision as of 17:19, 29 March 2023

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