Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
0864 - CifMinMax
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Cerință== 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. ==Date de intrare== Se citește de la tastatură: *'''numar''' - un număr natural pentru care se vor determina cea mai mare și cea mai mică cifră. Acesta trebuie să fie mai mic decât '''2.000.000.000'''. *'''cif_max''' - o referință la o variabilă în care funcția va stoca cea mai mare cifră a numărului numar. *'''cif_min''' - o referință la o variabilă în care funcția va stoca cea mai mică cifră a numărului numar. ==Date de ieșire== Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa: *'''cif_max''' - cea mai mare cifră a numărului numar. *'''cif_min''' - cea mai mică cifră a numărului numar. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse." ==Restricții de 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''' ==Exemplu== ;Intrare :1234 ;Ieșire :Datele introduse corespund restricțiilor impuse :Cea mai mare cifra a numarului 1234 este 4. :Cea mai mica cifra a numarului 1234 este 1. ==Important== Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei. ==Rezolvare== ===Rezolvare ver. 1=== <syntaxhighlight lang="python" line="1" start="1"> def validare(n): return 0 <= int(n) < 2_000_000_000 def cifminmax(numar, cifra_maxima, cifra_minima): cifra_maxima = 0 cifra_minima = 9 while numar > 0: cifra_curenta = numar % 10 if cifra_curenta > cifra_maxima: cifra_maxima = cifra_curenta if cifra_curenta < cifra_minima: cifra_minima = cifra_curenta numar //= 10 return cifra_maxima, cifra_minima if __name__ == '__main__': numar = input("Introduceti un numar pozitiv si mai mic decat 2.000.000.000: ") if validare(numar): numar = int(numar) print("Datele introduse corespund restricțiilor impuse") cifra_maxima, cifra_minima = cifminmax(numar, 0, 9) print(f"Cea mai mare cifra a numarului {numar} este {cifra_maxima}.") print(f"Cea mai mica cifra a numarului {numar} este {cifra_minima}.") else: print("Datele introduse nu corespund restricțiilor impuse") </syntaxhighlight> ==Explicații== Acesta este un program Python care implementează funcția cifminmax descrisă anterior. Programul începe prin definirea unei funcții de validare care verifică dacă numărul introdus de utilizator se încadrează în restricțiile impuse (adica sa fie pozitiv și mai mic decât 2.000.000.000). Funcția cifminmax primește ca parametri: numar, cifra_maxima și cifra_minima. cifra_maxima și cifra_minima sunt inițializate în interiorul funcției cu 0 și 9, deoarece sunt inițial cele mai mici și cele mai mari cifre posibile. Apoi, programul folosește o buclă while pentru a itera prin fiecare cifră a numărului numar, începând cu ultima cifră (adica cifra unitatilor) și mergând către cifra cu cea mai mare putere (adică cifra cea mai semnificativă). În fiecare iterație, programul stochează cifra curentă într-o variabilă numită cifra_curenta. Programul apoi verifică dacă cifra_curenta este mai mare decât cifra_maxima. Dacă da, atunci cifra_maxima este actualizată cu cifra_curenta. În mod similar, dacă cifra_curenta este mai mică decât cifra_minima, atunci cifra_minima este actualizată cu cifra_curenta. După ce bucla while se încheie, programul returnează cele două valori cifra_maxima și cifra_minima. În secțiunea if __name__ == '__main__':, programul primește inputul utilizatorului prin intermediul funcției input(), apoi verifică dacă numărul introdus este valid folosind funcția validare. Dacă numărul este valid, programul îl convertește într-un integer și calculează cifra maximă și cea minimă folosind funcția cifminmax. În cele din urmă, programul afișează cele două valori de ieșire pentru utilizator.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width