IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Écrire un algorithme (en langage naturel)


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2018
    Messages : 2
    Par défaut Écrire un algorithme (en langage naturel)
    Bonjour, je débute en algorithme, je dois apprendre à écrire un algorithme en langage naturel et j'aimerais avoir votre avis :

    Écrire l'algorithme qui a pour entrée un nombre compris entre 0 et 255, affiche ce nombre en base 2.

    Exemple : 59 s'écrit 0011 1011 en base 2 ( binaire )
    Voici ce que j'ai écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    D <- nombre entré
    R -> Resultat  en bit
     
    Tant que D prend une valeur comprit (entre 0 et 255)
        la variable D est divisé par 2
        R récupère le résultat   de D/2
        si R est  Pair alors afficher 1
        Sinon afficher 0
    Fin
    Est-ce que cela vous semble logique, ou il y a des choses à corriger et à améliorer ?

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 200
    Par défaut
    Essayons avec 59 :
    D=59, on le divise par 2, ça donne 9.5, qu'on compte comme 29, c'est ça ? R vaut 29, R est impair donc j'affiche 0. etc ...
    Et si on commence avec D=58, on voit qu''en divisant par 2, on retombe sur le même 29 ... et donc 59 et 58 vont conduire au même résultat.

    Je pense que ce n'est pas bon.

  3. #3
    Candidat au Club
    Femme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2018
    Messages : 2
    Par défaut
    Dans ce cas comment est-ce que tu l'écrirais toi ?

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 200
    Par défaut
    je pense que c'est plus utile pour toi si tu continues de chercher par toi-même. Sans compter le plaisir de trouver soi-même.

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 477
    Par défaut
    salut

    plutot qu'une division si tu utilisé une multiplication

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    00000000 = 0
    00000001 = 1
    00000010 = 2
    00000011 = 3
    00000100 = 4
    00000101 = 5
    00000110 = 6 
    00000111 = 7 
    ...
    il faut que tu cherche la valeur 2 a la puissance n la plus proche

    Soit 59 à convertir en binaire.
    La plus grande puissance inférieure à 59 est 2^5 = 32. Il reste 59 - 32 = 27.
    La plus grande puissance inférieure à 27 est 2^4 = 16. Il reste 27 - 16 = 11.
    La plus grande puissance inférieure à 11 est 2^3 = 8. Il reste 11 - 8 = 3 qui est égal à 2^1 + 2^0.
    Bref, 59 = 2^5+2^4+ 2^3 + 2^1 + 2^0.

    Le nombre en binaire aura huit chiffres, soit la quantité possible de puissances de 2 qui composent ce nombre.
    Le chiffre 1 correspond à la présence d’une puissance de 2 et,
    0 à l’absence d’une telle puissance.
    De gauche à droite, les trois premiers chiffres sont 1 (puissances 5,4,3) ; le quatrième est 0 (absence de la puissance 2) ;
    les deux derniers sont 1 (puissances 1 et 0).
    Bref, 59 = 11 1011.

    une autre méthode existe

    Une autre façon de convertir en binaire un nombre écrit dans le système décimal s’appuie sur la théorie des restes.

    Soit 59 à convertir en binaire.
    On divise 59 par 2 ;
    le quotient est 29 et le reste est 1.
    Comme le tableau l’illustre, on continue à diviser successivement chacun des quotients par 2 et on note le reste.
    On forme le nombre binaire correspondant avec les restes lus de droite à gauche.
    Dividendes 59 29 14 7 3 1
    Quotients 29 14 7 3 1 0
    Restes 1 1 0 1 1 1

    => 59 = 111 011.

Discussions similaires

  1. Une réseau de neurones pour un agent de dialogue en langage naturel
    Par Invité dans le forum Méthodes prédictives
    Réponses: 23
    Dernier message: 19/10/2013, 23h49
  2. Où écrire un algorithme (notepad, word...)
    Par monique anciaux dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 13/09/2010, 11h38
  3. [Langage naturel] Opérateur -->
    Par C_C dans le forum Prolog
    Réponses: 6
    Dernier message: 03/06/2006, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo