0354 - N Maxim: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Fără descriere a modificării
Linia 5: Linia 5:
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere întregi, separate prin spaţii.
Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere întregi, separate prin spaţii.
== Date de ieșire ==  
== Date de ieșire ==  
Programul afișează pe ecran numărul '''MAX''', reprezentând cel mai mare dintre cele '''n''' numere date.
Dacă datele introsuse sunt corecte programul va afisa "Datele introduse corespund cerinței" ,programul afișează pe ecran numărul '''MAX''', reprezentând cel mai mare dintre cele '''n''' numere date, iar in caz contrar programul va afisa "Datele introduse nu corespund cerinței".
== Restricții și precizări ==
== Restricții și precizări ==
* 1 ≤ n ≤ 1.000
* 1 ≤ n ≤ 1.000
* cele '''n''' numere citite vor avea cel mult '''9''' cifre
* cele '''n''' numere citite vor avea cel mult '''9''' cifre
== Exemplu ==
== Exemplu 1 ==
; Date de intrare
; Date de intrare
:5
:5
Linia 15: Linia 15:
; Date de iesire
; Date de iesire
:9
:9
== Exemplu 2 ==
; Date de intrare
:4
: 1 2 3 4
; Date de iesire
:4
== Exemplu 3 ==
; Date de intrare
: 3
: 76968635425 456 6
; Date de iesire
:"Datele introduse nu corespund cerinței"
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">


n = int(input("Introduceți numărul de valori: "))
def nrcifre(n):
maxi = None
    nrcif = 0
for i in range(n):
    while n != 0:
    try:
        n = n // 10
        x = int(input("Introduceți o valoare: "))
        nrcif += 1
        if maxi is None or x > maxi:
    return nrcif
            maxi = x
 
    except ValueError:
def validare_restrictii(n):
        print("Introduceți doar numere întregi.")
    cifre = nrcifre
    if 1 <= n <= 1000 and cifre <= 9:
        return "Datele introduse corespund cerinței"
    else:
        return "Datele introduse nu corespund cerinței"
 
def valoarea_maxima():
    n = int(input("Introduceți numărul de valori: "))
    maxi = None
    for i in range(n):
        try:
            x = int(input("Introduceți o valoare: "))
            if nrcifre(x) <= 9:
                if maxi is None or x > maxi:
                    maxi = x
            else:
                print("Valoarea introdusă are peste 9 cifre.")
        except ValueError:
            print("Introduceți doar numere întregi.")
    if maxi is not None:
        print("Valoarea maximă cu cel mult 9 cifre este:", maxi)


if maxi is not None:
if _name_ == '_main_':
     print("Valoarea maximă este:", maxi)
     n = int(input("Introduceți un număr: "))
else:
    print(validare_restrictii(n))
    valoarea_maxima()


    print("Nu s-au introdus valori corecte.")
</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 22 martie 2023 15:41

Sursă: [1]

Cerinţa

Se dau n numere întregi. Calculaţi cel mai mare dintre cele n numere date.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere întregi, separate prin spaţii.

Date de ieșire

Dacă datele introsuse sunt corecte programul va afisa "Datele introduse corespund cerinței" ,programul afișează pe ecran numărul MAX, reprezentând cel mai mare dintre cele n numere date, iar in caz contrar programul va afisa "Datele introduse nu corespund cerinței".

Restricții și precizări

  • 1 ≤ n ≤ 1.000
  • cele n numere citite vor avea cel mult 9 cifre

Exemplu 1

Date de intrare
5
7 6 9 6 8
Date de iesire
9

Exemplu 2

Date de intrare
4
1 2 3 4
Date de iesire
4

Exemplu 3

Date de intrare
3
76968635425 456 6
Date de iesire
"Datele introduse nu corespund cerinței"

Rezolvare

def nrcifre(n):
    nrcif = 0
    while n != 0:
        n = n // 10
        nrcif += 1
    return nrcif

def validare_restrictii(n):
    cifre = nrcifre
    if 1 <= n <= 1000 and cifre <= 9:
        return "Datele introduse corespund cerinței"
    else:
        return "Datele introduse nu corespund cerinței"

def valoarea_maxima():
    n = int(input("Introduceți numărul de valori: "))
    maxi = None
    for i in range(n):
        try:
            x = int(input("Introduceți o valoare: "))
            if nrcifre(x) <= 9:
                if maxi is None or x > maxi:
                    maxi = x
            else:
                print("Valoarea introdusă are peste 9 cifre.")
        except ValueError:
            print("Introduceți doar numere întregi.")
    if maxi is not None:
        print("Valoarea maximă cu cel mult 9 cifre este:", maxi)

if _name_ == '_main_':
    n = int(input("Introduceți un număr: "))
    print(validare_restrictii(n))
    valoarea_maxima()