1270 - B16
De la Universitas MediaWiki
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, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Exemplul 1
- Intrare
- 100
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 256
Exemplul 2
- Intrare
- 200000000
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare
# 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.")