Découvrez une mine d'informations et obtenez des réponses sur Zoofast.fr. Notre plateforme de questions-réponses est conçue pour fournir des réponses rapides et précises à toutes vos questions.

bonjour j'ai un long dm a faire en nsi pour demain mais je bloque est ce que quelqu'un pourrez m'aider


Exercice 2 : Retour sur la conversion Hexadécimale¶
a. Écrire une fonction carac_hexa(n) qui renvoie pour l'entier "n" le symbole correspondant en hexadécimal en tant que str . Si n > 15 renvoie (return)un message d’erreur.
Rappel des symboles hexadécimaux : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Indice: possibilité d'utiliser la chaîne : code hexa = "013456789ABCDEF" et l'indice de position

code_hexa = "0123456789ABCDEF"

def carac_hexa(n):






# Tests a - carac_hexa
print("Tests exercice a")
print(carac_hexa(5)) # renvoie "5"
print(carac_hexa(15)) # renvoie "F"
print(carac_hexa(10)) # renvoie "A"
print(carac_hexa(16)) # renvoie "erreur"

b. Écrire une fonction hexa_val(h) qui renvoie pour le caractère "h" en hexadécimal , sa valeur en décimal sous le type int. Si h n’est pas dans code_hexa renvoie (return)un message d’erreur.
Aide : possibilité de faire appel à la même variable code_hexa et de la parcourir avec une boucle jusqu'à trouver le bon indice)

def hexa_val(n):
if







else: # Si le symbole n'est pas dans la chaine code_hexa
return "erreur"

# Tests b/ hexa_val(h)
print("Tests exercice b")
print(hexa_val("F")) # renvoie 15
print(hexa_val("0")) # renvoie 0
print(hexa_val("9")) # renvoie 9
print(hexa_val("Q")) # renvoie "erreur"
c. Commentaires de programmes : Commenter les deux fonctions proposées ci-dessous en considérant les fonctions précédentes comme écrites
# 1ère fonction
def mystere(codeH):
valeur = 0
longueur = len(codeH)

for i in range(longueur):

valeur = valeur + hexa_val(codeH[i])*16**(longueur-i-1)

return valeur

# 2ème fonction
def mystere2(n):
code =""
quotient = n
while quotient != 0:

reste = quotient % 16

code = carac_hexa(reste) + code

quotient = quotient//16
return code