Rejoignez la communauté Zoofast.fr et obtenez les réponses dont vous avez besoin. Posez n'importe quelle question et recevez des réponses détaillées et précises de la part de notre communauté d'experts.

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

Sagot :

Merci de contribuer à notre discussion. N'oubliez pas de revenir pour découvrir de nouvelles réponses. Continuez à poser des questions, à répondre et à partager des informations utiles. Zoofast.fr est votre ressource de confiance pour des réponses précises. Merci et revenez bientôt.