0355 - N Minim: 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 '''MIN''', reprezentând cel mai mic dintre cele '''n''' numere date.
Programul afișează pe ecran pt fiecare vlaoare introdusa corect textul "Valorile au numarul de cifre corespunzator." iar in caz contrar "Valorile nu au numarul de cifre corespunzator.", ulterior va fi afisat numarul '''MIN''', reprezentând cel mai mic dintre cele '''n''' numere date.
== Restricții și precizări ==
== Restricții și precizări ==
* 1 ≤ n ≤ 1000
* 1 ≤ n ≤ 1000
* 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 ieșire
; Date de ieșire
:6
:6
== Exemplu 2 ==
; Date de intrare
:3
:1, 6, 76968549875
; Date de ieșire
:1
== Exemplu 3 ==
; Date de intrare
:5
:17 65 29 67 8
; Date de ieșire
:8
== Rezolvare ==
== Rezolvare ==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
n = int(input("Introduceți numărul de valori: "))
def citeste_n():
mini = None
    while True:
for i in range(n):
        try:
    try:
            n = int(input("Introduceti numarul de valori: "))
        x = int(input("Introduceți o valoare: "))
            if n >= 1 or n < 1000:
         if mini is None or x <mini:
                print("Numarul este cuprins intre 1 si 1000.")
             mini = x
            else:
     except ValueError:
                print("Numarul trebuie sa fie cuprins intre 1 si 1000.")
        print("Introduceți doar numere întregi.")
                break
        except ValueError:
            print("Trebuie introduse doar numere intregi.")
 
def nrcifre(nr):
    nrcif = 0
    while nr != 0:
        nrcif += 1
        nr //= 10
    return nrcif
 
def citeste_valori(n):
    valori = []
    for i in range(n):
        valoare = input("Introduceti o valoare: ")
        try:
            cifre = nrcifre(int(valoare))
            if cifre <= 9:
                print("Valorile au numarul de cifre corespunzator.")
                valori.append(int(valoare))
            else:
                print("Valorile nu au numarul de cifre corespunzator.")
                break
        except ValueError:
            print("Trebuie introduse doar valori cu mai putin de 9 cifre.")
            break
    return valori
 
def numarul_minim(valori):
    min = None
    for x in valori:
         if min is None or x < min:
             min = x
     return min
 
if __name__ == '__main__':
    n = citeste_n()
    valori = citeste_valori(n)
    min = numarul_minim(valori)
    print("Numarul minim este:", min)


if mini is not None:
    print("Valoarea minimă este:", mini)
else:
    print("Nu s-au introdus valori corecte.")
</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 27 martie 2023 15:40

Sursă: [1]

Cerință

Se dau n numere întregi. Calculaţi cel mai mic 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

Programul afișează pe ecran pt fiecare vlaoare introdusa corect textul "Valorile au numarul de cifre corespunzator." iar in caz contrar "Valorile nu au numarul de cifre corespunzator.", ulterior va fi afisat numarul MIN, reprezentând cel mai mic dintre cele n numere date.

Restricții și precizări

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

Exemplu 1

Date de intrare
5
7 6 9 6 8
Date de ieșire
6

Exemplu 2

Date de intrare
3
1, 6, 76968549875
Date de ieșire
1

Exemplu 3

Date de intrare
5
17 65 29 67 8
Date de ieșire
8

Rezolvare

def citeste_n():
    while True:
        try:
            n = int(input("Introduceti numarul de valori: "))
            if n >= 1 or n < 1000:
                print("Numarul este cuprins intre 1 si 1000.")
            else:
                print("Numarul trebuie sa fie cuprins intre 1 si 1000.")
                break
        except ValueError:
            print("Trebuie introduse doar numere intregi.")

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

def citeste_valori(n):
    valori = []
    for i in range(n):
        valoare = input("Introduceti o valoare: ")
        try:
            cifre = nrcifre(int(valoare))
            if cifre <= 9:
                print("Valorile au numarul de cifre corespunzator.")
                valori.append(int(valoare))
            else:
                print("Valorile nu au numarul de cifre corespunzator.")
                break
        except ValueError:
            print("Trebuie introduse doar valori cu mai putin de 9 cifre.")
            break
    return valori

def numarul_minim(valori):
    min = None
    for x in valori:
        if min is None or x < min:
            min = x
    return min

if __name__ == '__main__':
    n = citeste_n()
    valori = citeste_valori(n)
    min = numarul_minim(valori)
    print("Numarul minim este:", min)