Ceci est une ancienne révision du document !
PYTHON : Conversions binaire et décimal [TD]
Durant vos années au collège, vous avez appris à écrire des algorithmes et à les traduire en programmes SCRATCH. Lors de la découverte du code binaire vous avez réalisez des exercices de programmation permettant de passer du binaire au décimal ou l'inverse.
Compétences :
CT 1.3 – CT 2.5 – CT 2.7 - DIC 1.5 : Imaginer des solutions pour produire des éléments de programmes informatiques en réponse au besoin.
CT 3.1 - OTSCIS 2.1 : Exprimer sa pensée à l’aide d’outils de description adaptés.
CT 4.2 – CT 5.5 -
IP 2.3 : Écrire un programme.
J’ai acquis la compétence si :
Dans cette activité, nous allons reprendre un algorithme écrit précédemment et le traduire en langage PYTHON.
Travail à faire
En utilisant l'algorithme déjà écrit, je le traduit en programme PYTHON. Je vérifie ensuite son fonctionnement (avec des exemples qui fonctionnent et des cas d'erreurs aussi) avant d'appeler le professeur.
Ci dessous sa traduction graphique (organigramme) et textuelle (algorithme).
01 Demander un nombre entre 0 et 255 inclus
02 Mettre dans la variable NOMBRE la réponse
03 Si NOMBRE < 0 ou > 255
04 Signaler l'erreur
05 Arrêter le programme
06 Mettre la variable SEUIL à 128
07 Mettre la variable RÉPONSE à vide
08 Répéter jusqu'à SEUIL < 1
09 Si NOMBRE < SEUIL alors
10 Écrire un 0 à droite de RÉPONSE
11 Sinon
12 Écrire un 1 à droite de RÉPONSE
13 Faire NOMBRE = NOMBRE - SEUIL
14 Faire SEUIL = SEUIL / 2
15 Lire RÉPONSE
variables : Lignes 6, 7, 14 … je note une valeur, le résultat d'un calcul, une information à me rappeler plus tard
répétitions : Les lignes 9 à 14 sont répétées 8 fois avant d'exécuter la ligne 15.
conditions : Si NOMBRE < SEUIL j'exécute la ligne 10 puis la 14 ; Si NOMBRE >= SEUIL j'exécute les lignes 12 et 13 avant d'aller à 14
J'utilise le site MyCompiler comme IDE en ligne.
Aide et solution
Coups de pousse
Pour saisir le nombre à traduire ou afficher les résultats
Coups de pousse
input(“texte demande”) # retourne la valeur saisie au clavier.
print(“texte”, contenu_variable) # affiche un résultat.
Pour générer un passage à la ligne ajouter la séquence '\n' à la fin de la chaîne de caractère.
Pour définir le type d'une valeur (entier, décimal, chaîne de caractères ou logique
Coups de pousse
Structures à utiliser
Coups de pousse
Instruction conditionnelle “Si-Sinon” ⇒ if condition : traitement vrai else : traitement faux;
Boucle conditionnelle “Tant-que” ⇒ While condition : traitement tant-que condition vrai
Les traitements sont écrits en dessous et indentés de la structure concernée.
Solution
A ne regarder qu'une fois le travail terminé pour comparer. Vous pouvez avoir quelques différences tout en ayant aussi un programme qui fonctionne parfaitement.
Coups de pousse
- Convert_10to2.py
#Initialisation
nb = int(input("Nombre de 0 à 255 inclus ?\n"))
seuil = 128
rep = "" #Chaîne vide
#Contrôle de la validité de nb
if (nb < 0) or (nb > 255) :
print("Nombre", nb, "hors des limites !")
else :
print("Nombre", str(nb), "retenu.")
#Début de conversion
while seuil >= 1 :
if seuil > nb :
rep = rep + '0'
else :
rep = rep + '1'
nb = nb - seuil
seuil = seuil / 2
#Fin de conversion
print("Résultat conversion binaire :", rep)
Pour aller plus loin