Flash : un peu de conversions binaire décimal
- 1010011 en décimal :
- avec les puissances de 2,
- avec un algorithme « je pars de zéro, et pour tous les chiffres je fais fois deux plus le chiffre suivant».
- 156 en binaire :
- avec les puissances de 2,
- avec un algorithme « tant que le nombre n’est pas nul, je note le reste dans la division par 2 et le quotient devient le nouveau nombre».
Corrections :
- Correction du TP « parcourir une liste »
- Correction du convertisseur « intelligent » :
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 def est_binaire(liste) : """dit si une liste d'entiers positifs ne contient que dez zéros et des 1""" for chiffre in liste : if chiffre > 1: # pas binaire return False # binaire ok return True def nombre_vers_liste(n): """ renvoie la liste des chiffres de n entier naturel""" # initialisation liste = [] # tant que le nombre ne fait pas zéro, je continue while n > 0 : # je note le reste liste.append(n % 10) # je remplace le nombre par le quotient n = n // 10 # On lit dans l'autre sens les chiffres liste.reverse() return liste def convertisseur(nombre) : """Convertit en binaire le nombre considéré en décimal S'il peut être vu comme binaire, conversion inverse aussi Exemples : >>> 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. >>> """ # liste des chiffres liste = nombre_vers_liste(nombre) # test binaire if est_binaire(liste): print("Lu en binaire,", nombre, "donne", end = ' ') print(binaire_vers_decimal(liste), "en décimal.") else : print(nombre,"ne peut pas être lu en binaire.") # conversion en binaire chiffres_binaires = decimal_vers_binaire(nombre) # concaténation binaire = "" for c in chiffres_binaires: binaire += str(c) # affichage final print("Lu en décimal,", nombre, "donne", end = ' ') print(binaire, "en binaire.") def tests(): print() convertisseur(101010) print() convertisseur(200) print() tests()
-
TP : carnet d’adresses
- cm 2019-11-25 NSI TP Carnet d’adresses
- Essayer de réaliser le menu cette semaine …
- … je suis absent (en formation) mercredi !
Le tableau du jour :
Bonjour, je rencontre un petit problème sur le carnet d’adresse:
Je n’arrive pas à faire marcher cette partie extraite de mon code qui doit lorsqu’on écrit ‘Q’ ou ‘q’ afficher « ne marche pas »:
Merci pour votre aide (précieuse).
# avec les indentations qui ne sont pas passées aux 2 lignes suivant le while
Bonjour
Ton code …
… essaie
Bonne journée et bon courage !
La piste était bonne en tout cas 😀