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

 C++ Discussion :

conversion : les nombres naturels en binaire et creation d'un suite de nombres


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut conversion : les nombres naturels en binaire et creation d'un suite de nombres

    C’est un exercice dans le cadre d’apprentissage du c++

    voici le problème à résoudre, j'ai trouver la solution , ne vous inquiétez pas ^^ mais je vais vous expliquer ce qui ne vas pas après




    et voici le code que j'ai écrit,

    - 1 )je voulais savoir si vous pouvez m'aider à simplifier ce code,

    - 2 ) trouver un moyen de mettre un return dans la fonction main () et supprimer la premier return.

    - 3 ) une fois compiler j'ai l'impression que le pc lag bizar,,,
    Merci d'avance


    j'ai peut être un peut compliquer la chose mais voila , on peut pas tout savoir !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    #include <iostream>
    using namespace std;
     
    int binaire(int valeur)
    {
        int reste,nombre_un=0,nombre_zero=0,resulta_soustaction;
     
     
        if (valeur==0)
            resulta_soustaction=0;
        else
        {
            while (valeur>0)
            {
                reste=valeur%2;
                valeur/=2;
                if (reste==1)
                    nombre_un++;
                else
                    nombre_zero++;
            }
            resulta_soustaction=nombre_un-nombre_zero;
            if (resulta_soustaction==0)
                resulta_soustaction=3;
            else if (resulta_soustaction<0)
                resulta_soustaction=0;
            else if (resulta_soustaction>0)
                resulta_soustaction=1;
        }
        return resulta_soustaction;
    }
    int main()
    {
        int entree,r,un=0,zero=0,signe=0,save,suite_de_nombre=0,q,b=0;
        cout<<"Nombre d'elements de la suite?";
        cin>>entree;
     
        for (int i=0; b<entree ;i++)
        {
            if (signe!=3)
                save=signe;
            signe= binaire (i);
     
            if (save==signe || save==3 || signe==3)
                suite_de_nombre++;
            else
            {
                cout<<suite_de_nombre<<" ";
                b++;
                suite_de_nombre=1;
            }
        }
        cout<<endl;
     
    }

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Pour améliorer la lisibilité et la compréhension, je transformerai le retour de la fonction et je te propose une petite modif dans la division afin de travailler sur les bits et plus sur les modulo.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    typedef enum
    { SignePositif,
       SigneNegatif,
       SigneNull,
    } Signe_t;
     
    Signe_t binaire(int valeur)
    {
       int nombre_un=0,nombre_zero=0,signe = 0;
    Signe_t resulta_soustaction;
     
     
        if (valeur==0)
            resulta_soustaction=SigneNull;
        else
        {
            while (valeur>0)
            {
                if( (valeur & 1) == 1)
                    nombre_un++;
                else
                    nombre_zero++;
                valeur >>= 1;
            }
            signe=nombre_un-nombre_zero;
            if (signe==0)
                resulta_soustaction=SigneNull;
            else if (signe<0)
                resulta_soustaction=SigneNegatif;
            else if (signe>0)   /* ce test est inutile car c'est obligatoire vrai car il n'est ni nul ni positif */
                resulta_soustaction=SignePositif;
        }
        return resulta_soustaction;
    }

    PS : la balise de code c'est [code][/code] et pas [quote][/quote], jai rectifié
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut
    ça beug un peut avec ton code mais c'est pas grave
    merci

    mais ça ne résous toujours pas mon problème ,,

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par scorpion60 Voir le message
    ça beug un peut avec ton code mais c'est pas grave
    Ca bug où cela ? Mais, c'est possible, j'avoue, je n'ai pas testé.

    Citation Envoyé par scorpion60 Voir le message

    - 1 )je voulais savoir si vous pouvez m'aider à simplifier ce code,

    - 2 ) trouver un moyen de mettre un return dans la fonction main () et supprimer la premier return.

    - 3 ) une fois compiler j'ai l'impression que le pc lag bizar,,,
    Merci d'avance
    1/ Je le trouve relativement simple et aisé à comprendre ton code. Perso, il n'y a pas grand chose à changer.

    2/ Je ne comprend pas ce que tu veux faire

    3/ C'est quoi un PC qui lag ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut oui ca beug
    oui ça beug quand on tap 25
    on doit avoir une suite de

    1 3 1 3 3 5 3 1 1 3 1 7 7 1 3 5 3 13 7 1 3 1 1 3 3

    et on a pas avec ce que tu ma donner :s ,,,

    je doit pas utiliser typedef enum :s

    je doit absolument faire avec ce que j'ai , comme ce que j'ai écrit dans ma code..

    oui le je ressent un leger lag , sur tout, avec la console , peut être que c'est normal,

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Par défaut oki
    1-) ben si tu trouve que il na pas grand choses a changer c'est super !

    2 -) comme je ne peut pas utliliser

    system("PAUSE");
    return EXIT_SUCCESS;

    et comme je ne doit pas avoir 2 return , alors int mai () reste sans returne .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/01/2014, 22h36
  2. Conversion d'un nombre décimal en binaire.
    Par ariuss dans le forum Débuter
    Réponses: 6
    Dernier message: 17/10/2009, 11h38
  3. [TPW] Conversion d'un nombre décimal en binaire
    Par thimo2 dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 10/04/2009, 00h24
  4. Conversion dans les 3 bases & heure binaire
    Par Mic** dans le forum Contribuez
    Réponses: 1
    Dernier message: 30/11/2008, 17h17
  5. [ABAP] Convertir nombre decimal en binaire
    Par danael dans le forum SAP
    Réponses: 3
    Dernier message: 04/04/2005, 12h17

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