1270 - B16: Difference between revisions

From Bitnami MediaWiki
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'''.
== Exemplu ==
== 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>
# Definim o funcție care verifică dacă un șir de caractere poate fi convertit într-un număr în baza 16
# 1270  B16
def este_baza_16(s):
def verificare(n_hex):
     try:
     try:
         int(s, 16) # Încercăm să convertim șirul într-un număr în baza 16
         # Încercăm să convertim numărul în baza 10
         return True  # Dacă conversia a reușit, returnăm True
        n_dec = int(n_hex, 16)
     except ValueError: # Dacă conversia a eșuat, se va arunca o excepție ValueError
        # Verificăm dacă numărul este în intervalul [0, 2000000000]
         return False  # În acest caz, returnăm False
         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


# Citim numărul în baza 16 de la utilizator
n = input()


# Dacă numărul este valid, îl convertim în baza 10
# Funcția transformare convertește numărul din baza 16 în baza 10
n_baza_10 = int(n, 16)
def transformare(numar_hex):
# Afișăm numărul în baza 10
    return int(numar_hex, 16)
print(n_baza_10)
 
 
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>

  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>