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