1270 - B16: Difference between revisions
Pagină nouă: == Cerinţa == Se dă un număr natural în baza '''16'''. Să se transforme acest număr în baza '''10'''. == Date de intrare == Programul citește de la tastatură numărul '''n''' în baza '''16'''. == Date de ieşire == Programul va afișa pe ecran numărul '''n''' transformat în baza '''10'''. == Restricții și precizări == * reprezentarea în baza '''10''' a numărului dat este mai mică decât '''2.000.000.000''' * Cifrele în baza '''16''' sunt : '''0, 1, 2, 3, 4,... |
No edit summary |
||
Line 8: | Line 8: | ||
* reprezentarea în baza '''10''' a numărului dat este mai mică decât '''2.000.000.000''' | * reprezentarea în baza '''10''' a numărului dat este mai mică decât '''2.000.000.000''' | ||
* Cifrele în baza '''16''' sunt : '''0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F'''. | * Cifrele în baza '''16''' sunt : '''0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F'''. | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
: 100 | : 100 | ||
; Ieșire | ; Ieșire | ||
: Datele introduse corespund restricțiilor impuse. | |||
: 256 | : 256 | ||
<br> | |||
== Exemplul 2 == | |||
; Intrare | |||
: 200000000 | |||
; Ieșire | |||
: Datele introduse nu corespund restricțiilor impuse. | |||
<br> | |||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# | # 1270 B16 | ||
def | def verificare(n_hex): | ||
try: | try: | ||
int( | # Încercăm să convertim numărul în baza 10 | ||
return | n_dec = int(n_hex, 16) | ||
except ValueError: | # Verificăm dacă numărul este în intervalul [0, 2000000000] | ||
if 0 <= n_dec <= 2000000000: | |||
# Dacă numărul este valid, îl returnăm | |||
return n_hex | |||
else: | |||
# Dacă numărul nu este valid, ridicăm o excepție | |||
raise ValueError | |||
except ValueError: | |||
# Dacă conversia a eșuat, ridicăm o excepție | |||
raise ValueError | |||
# Dacă numărul este valid, îl convertim în baza 10 | # Funcția transformare convertește numărul din baza 16 în baza 10 | ||
def transformare(numar_hex): | |||
# | return int(numar_hex, 16) | ||
print( | |||
if __name__ == "__main__": | |||
try: | |||
# Citim numărul de la utilizator | |||
n = input("Introduceti numarul in baza 16: ") | |||
# Validăm numărul | |||
n = verificare(n) | |||
# Dacă numărul este valid, îl convertim în baza 10 și afișăm rezultatul | |||
print("Datele introduse corespund restricțiilor impuse.") | |||
print(transformare(n)) | |||
except ValueError: | |||
# Dacă numărul nu este valid, afișăm un mesaj de eroare | |||
print("Datele introduse nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 14:41, 12 November 2023
Cerinţa[edit | edit source]
Se dă un număr natural în baza 16. Să se transforme acest număr în baza 10.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n în baza 16.
Date de ieşire[edit | edit source]
Programul va afișa pe ecran numărul n transformat în baza 10.
Restricții și precizări[edit | edit source]
- reprezentarea în baza 10 a numărului dat este mai mică decât 2.000.000.000
- Cifrele în baza 16 sunt : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Exemplul 1[edit | edit source]
- Intrare
- 100
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 256
Exemplul 2[edit | edit source]
- Intrare
- 200000000
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 1270 B16
def verificare(n_hex):
try: # Încercăm să convertim numărul în baza 10 n_dec = int(n_hex, 16) # Verificăm dacă numărul este în intervalul [0, 2000000000] if 0 <= n_dec <= 2000000000: # Dacă numărul este valid, îl returnăm return n_hex else: # Dacă numărul nu este valid, ridicăm o excepție raise ValueError except ValueError: # Dacă conversia a eșuat, ridicăm o excepție raise ValueError
- Funcția transformare convertește numărul din baza 16 în baza 10
def transformare(numar_hex):
return int(numar_hex, 16)
if __name__ == "__main__":
try: # Citim numărul de la utilizator n = input("Introduceti numarul in baza 16: ") # Validăm numărul n = verificare(n) # Dacă numărul este valid, îl convertim în baza 10 și afișăm rezultatul print("Datele introduse corespund restricțiilor impuse.") print(transformare(n)) except ValueError: # Dacă numărul nu este valid, afișăm un mesaj de eroare print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>