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
4316 - Cifre 18
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!
Sursă: [https://www.pbinfo.ro/probleme/4316/cifre18] == Cerinţa == Să se scrie un program care citește un număr natural numar și o valoare nenulă pozitie, cel mult egală cu numărul de cifre ale lui numar. Să se mărească cifra de pe pozitia ceruta din numar cu 1 dacă este mai mică decât 9 și să se înlocuiască cu 0 în caz contrar. == Date de intrare == Programul va citi de la tastatură numerele numar si pozitie. == Date de ieşire == Programul va afişa pe ecran valoarea lui numar, după transformarea cerută. == Restricții și precizări == * numar ≤ 2.000.000.000 == Exemplu == ; Intrare : 31615 4 ; Ieșire : 31625 ===Explicație=== A patra cifră a lui numar=32615 este 1. Deoarece este mai mică decât 9 se va mări cu 1, deci numar devine 32625. == Exemplu == ; Intrare : 32695 4 ; Ieșire : 32605 ===Explicație=== A patra cifră a lui numar=32615 este 9. În acest caz se înlocuiește cu 0, deci numar devine 32605. == Rezolvare == === Rezolvare ver. 1 === <syntaxhighlight lang="python" line> def citeste_numar(): # Citeste numarul de la utilizator numar = int(input("Introduceți numărul: ")) return numar def citeste_pozitie(numar): # Citeste pozitia cifrei de la utilizator pozitie = int(input("Introduceți poziția cifrei pe care doriți să o măriți: ")) if pozitie <= 0 or pozitie > len(str(numar)): raise ValueError("Poziția trebuie să fie un număr nenul și mai mic sau egal cu numărul de cifre al numărului!") return pozitie def maresti_cifra(numar, pozitie): # Extrage cifra de la pozitia data cifra = int(str(numar)[pozitie-1]) if cifra < 9: # Daca cifra este mai mica decat 9, o marim cu 1 cifra += 1 else: # Daca cifra este 9, o inlocuim cu 0 cifra = 0 # Construieste noul numar prin inlocuirea cifrei de la pozitia data numar = str(numar)[:pozitie-1] + str(cifra) + str(numar)[pozitie:] return numar def afiseaza_rezultat(numar): # Afiseaza rezultatul print("Datele sunt introduse corect.") print("Noul număr este:", int(numar)) def main(): try: # Citeste numarul de la utilizator numar = citeste_numar() # Citeste pozitia cifrei de la utilizator pozitie = citeste_pozitie(numar) # Mareste cifra de la pozitia data numar_nou = maresti_cifra(numar, pozitie) # Afiseaza rezultatul afiseaza_rezultat(numar_nou) except ValueError as e: # Afiseaza mesaj de eroare daca apare o exceptie print(str(e)) if __name__ == "__main__": main() </syntaxhighlight> === Rezolvare ver. 2 === <syntaxhighlight lang="python" line> # Citim numărul și poziția cifrei de la tastatură numar = int(input("Introduceți numărul: ")) pozitie = int(input("Introduceți poziția cifrei pe care doriți să o măriți: ")) # Verificăm dacă numărul este un număr natural și poziția respectă condițiile impuse if numar <= 0: print("Numărul trebuie să fie un număr natural pozitiv!") elif pozitie <= 0 or pozitie > len(str(numar)): print("Poziția trebuie să fie un număr nenul și mai mic sau egal cu numărul de cifre al numărului!") else: # Obținem cifra de pe poziția k cifra = int(str(numar)[pozitie-1]) # Dacă cifra este mai mică decât 9, o mărim cu 1 if cifra < 9: cifra += 1 # În caz contrar, o înlocuim cu 0 else: cifra = 0 # Construim noul număr prin concatenarea părților din număr înainte și după poziția data numar = str(numar)[:pozitie-1] + str(cifra) + str(numar)[pozitie:] # Afișăm noul număr print("Datele sunt introduse corect.") print("Noul număr este:", int(numar)) </syntaxhighlight>
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