0354 - N Maxim: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 5: Line 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
Line 15: Line 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>

Revision as of 15:41, 22 March 2023

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

<syntaxhighlight lang="python" line="1">

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()

</syntaxhighlight>