1270 - B16
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
<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>