0894 - CifMinMax: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: ==Cerinţa== Să se scrie o funcție Python care să determine cea mai mare și cea mai mică cifră a unui număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire. ==Restricţii şi precizări== * numele funcției va fi cifminmax * funcția va avea trei parametri: primul parametru reprezintă numărul pentru care se calculează valorile cerute;al doilea parametru va reprezenta cifra maximă, iar al treilea va reprez...)
 
Fără descriere a modificării
Linia 7: Linia 7:
* numărul pentru care se calculează cele doua valori va fi mai mic decât 2.000.000.000
* numărul pentru care se calculează cele doua valori va fi mai mic decât 2.000.000.000


==Explicație==
==Date de intrare==
Funcția "cifminmax" primește ca parametri un număr natural "n" și două variabile "maxim" și "minim", care sunt inițializate cu valoarea 0 și, respectiv, 9. În continuare, se parcurg cifrele numărului "n" primit ca parametru cu ajutorul unui while loop, prin extragerea cifrei curente cu operatorul modulo și împărțirea ulterioară la 10. Dacă cifra curentă este mai mare decat "maxim", valoarea variabilei "maxim" este actualizată cu aceasta, iar dacă este mai mică decât "minim", valoarea variabilei "minim" este actualizată cu aceasta. La final, funcția returnează valorile "maxim" si "minim".
Programul citește de la tastatură numărul n.
 
==Date de ieșire==
Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi pe un rând nou cea mai mare . În cazul în care numărul introdus depășește limitele date, se va afișa "Numarul introdus nu este valid.", iar dacă numărul introdus nu este întreg, se va afișa "Nu ati introdus un numar intreg."


==Rezolvare==
==Rezolvare==

Versiunea de la data 3 mai 2023 03:52

Cerinţa

Să se scrie o funcție Python care să determine cea mai mare și cea mai mică cifră a unui număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire.

Restricţii şi precizări

  • numele funcției va fi cifminmax
  • funcția va avea trei parametri: primul parametru reprezintă numărul pentru care se calculează valorile cerute;al doilea parametru va reprezenta cifra maximă, iar al treilea va reprezenta cifra minimă
  • numărul pentru care se calculează cele doua valori va fi mai mic decât 2.000.000.000

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Date de intrare valide.", apoi pe un rând nou cea mai mare . În cazul în care numărul introdus depășește limitele date, se va afișa "Numarul introdus nu este valid.", iar dacă numărul introdus nu este întreg, se va afișa "Nu ati introdus un numar intreg."

Rezolvare

def validate_cifminmax(n, max_cif, min_cif):
    if n >= 2000000000:
        return False
    return True

def cifminmax(n, max_cif, min_cif):
    while n > 0:
        cif = n % 10
        if cif > max_cif:
            max_cif = cif
        if cif < min_cif:
            min_cif = cif
        n //= 10
    return max_cif, min_cif

def main():
    n = 123456789
    max_cif = -1
    min_cif = 10

    if validate_cifminmax(n, max_cif, min_cif):
        max_cif, min_cif = cifminmax(n, max_cif, min_cif)
        print("Cea mai mare cifra este:", max_cif)
        print("Cea mai mica cifra este:", min_cif)
    else:
        print("Date de intrare invalide")

if __name__ == '__main__':
    main()