1270 - B16

From Bitnami MediaWiki
Revision as of 14:41, 12 November 2023 by AntalKrisztian (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa[edit]

Se dă un număr natural în baza 16. Să se transforme acest număr în baza 10.

Date de intrare[edit]

Programul citește de la tastatură numărul n în baza 16.

Date de ieşire[edit]

Programul va afișa pe ecran numărul n transformat în baza 10.

Restricții și precizări[edit]

  • 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]

Intrare
100
Ieșire
Datele introduse corespund restricțiilor impuse.
256


Exemplul 2[edit]

Intrare
200000000
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare[edit]

<syntaxhighlight lang="python" line>

  1. 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


  1. 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>