0054 - Maxim: Difference between revisions
Andor Giulia (talk | contribs) Pagină nouă: Sursă: [https://www.pbinfo.ro/probleme/54/maxim] == Cerință == Se citesc numere de la tastatură până la apariția lui zero. Să se determine cea mai mare valoare citită. == 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 '''MAX''', reprezentând cea mai mare valoare citită. == Restricții și precizări == * numerele citite aparți... |
Andor Giulia (talk | contribs) 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 '''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 == | |||
<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 == | |||
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ă.