TP – Carnet d’adresses (version 1)

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

Le tableau du jour :

Retravailler et refaire la fonction doublons présentée sur ce tableau cette semaine !!!

3 réflexions au sujet de « TP – Carnet d’adresses (version 1) »

  1. 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 »:

    commande = input("Votre commande ? ")
    while commande != 'Q' or commande != 'q':
        print("des choses")
        commande = input("Votre commande ? ")
    print("ne marche pas")

    Merci pour votre aide (précieuse).

      • Bonjour
        Ton code …

        commande = input("Votre commande ? ")
        while commande != 'Q' or commande != 'q':
            print("des choses")
            commande = input("Votre commande ? ")
        print("ne marche pas")
        Votre commande ? q
        des choses
        Votre commande ? Q
        des choses
        Votre commande ? a
        des choses
        Votre commande ? z
        des choses
        Votre commande ? Bof
        des choses

        … essaie

        commande = input("Votre commande ? ")
        while commande != 'Q' and commande != 'q':
            print("des choses")
            commande = input("Votre commande ? ")
        print("Yes !")
        
        Votre commande ? Cool 
        des choses
        Votre commande ? ça va marcher avec q
        des choses
        Votre commande ? q
        Yes !
        >>> 

        Bonne journée et bon courage !
        La piste était bonne en tout cas 😀

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.