Correction : algorithme de conversion de décimal vers base quatre
def decimal_vers_base4(nombre): """ conversion de base 10 vers base quatre nombre est un entier naturel non nul""" # initialisation liste = [] # tant que le nombre ne fait pas zéro, je continue while nombre > 0 : # je note le reste liste.append(nombre % 4) # je remplace le nombre par le quotient nombre = nombre // 4 # On lit dans l'autre sens les chiffres liste.reverse() return liste
Exemples :
>>> decimal_vers_base4(16) [1, 0, 0] >>> decimal_vers_base4(4252) [1, 0, 0, 2, 1, 3, 0] >>>
Et en binaire ?
def binaire_vers_decimal(liste): """ conversion de binaire (liste) vers base 10""" # initialisation decimal = 0 # pour tous les chiffres je fais *2 plus le chiffre for chiffre in liste : decimal *= 2 decimal += chiffre return decimal def decimal_vers_binaire(nombre): """ conversion de base 10 (int) vers binaire (liste) nombre est un entier naturel non nul""" # initialisation liste = [] # tant que le nombre ne fait pas zéro, je continue while nombre > 0 : # je note le reste liste.append(nombre % 2) # je remplace le nombre par le quotient nombre = nombre // 2 # On lit dans l'autre sens les chiffres liste.reverse() return liste
Exemples :
>>> binaire_vers_decimal([1, 0, 1, 0, 1, 0, ]) 42 >>> decimal_vers_binaire(200) [1, 1, 0, 0, 1, 0, 0, 0] >>>
Et on a bien .
On établit ces codes ensemble, mais chaque élève les refait à son rythme.
Fini ? On commence un « convertisseur intelligent » :
>>> convertisseur(101010) Lu en binaire, 101010 donne 42 en décimal. Lu en décimal, 101010 donne 11000101010010010 en binaire. >>> convertisseur(200) 200 ne peut pas être lu en binaire. Lu en décimal, 200 donne 11001000 en binaire. >>>
Pour lundi, dans la collecte de MBN, déposer un fichier python avec les cinq fonctions du découpage fonctionnel ci-dessous. Elles devront être au moins documentées par un docstring bien clair et si possible faire ce qu’elles doivent faire !
Suite du TP – parcourir une liste
On continue ce TP mais on commence par corriger la fonction est_present()
en dessinant des armoires :
Pour lundi, continuer ce TP et implémenter au moins la fonction maximum(liste)
.
Démo de résultat :
[42, 13, 28, 84, 2, 52] Le maximum est 84 atteint à l'indice 3 Le minimum est 2 atteint à l'indice 4 Pas de doublons dans cette liste [5, 6, 7, 42, 13, 28, 12, 84, 2, 6, 42, 52, 6, 52] Le maximum est 84 atteint à l'indice 7 Le minimum est 2 atteint à l'indice 8 Il y a 3 fois le nombre 6 Il y a 2 fois le nombre 42 Il y a 2 fois le nombre 52 >>>
Pour les plus courageux, reste le sapin !
Bonjooooour
J’avais déjà fini de programmer mon convertisseur intelligent avant que vous n’expliquiez le découpage des fonction et des variables. J’ai donc des noms de fonctions et de variables différents (comme « liste_decimal » au lieu de « liste » ou « test_binaire » au lieu de « est_binaire »).
Dois-je modifier tout cela pour faire comme le modèle ?
Merci de votre réponse ^^
Bonjour,
Ne change pas : je serai content d’apprécier ta version !
Bon week-end !
D’accord merci beaucoup 😀
Rebonjooooour
J’ai (presque) fini le sapin (enfin il est fini mais je dois encore ajouter les docstring et les commentaires).
Que dois-je en faire ? Rien ? Vous l’envoyer par mail ? Dans une collecte ?
(oui beaucoup trop de questions)
(et oui beaucoup trop de parenthèses aussi)
Merci de votre réponse ^^
Re-bonjour,
« christophe point marchant arobase ac tiret strasbourg point fr »
Remplacer :
et envoyer par mail !
Merci beaucoup pour votre réponse 🙂
Je finirai les commentaires et je vous enverrais ça là-bas ^^