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