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 :

P.P.P. de Bjarne Stroustrup C++


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut P.P.P. de Bjarne Stroustrup C++
    Bonjour à toutes et tous .

    J'ai décidé de me "Perfectionner" pour ne dire que cela , en lisant et effectuant les exercices du livres de Mr Stroustrup .

    Première lagune hé oui + que lacune .
    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
     int ami_sex =0;
        cout << "Entrer f pour féminin et m pour masculin" " \n"  ;
     
        cin >> ami_sex;
     
        int f  , m ;
            if  (ami_sex == f)
            { cout << "Demande à " << ami << " " "notre amie de m \'appeller" " \n" ;}
     
     
           else if
     
            (ami_sex == m);
       {cout << ami << "  c'est un garçon , enfin je crois"" \n";
       cout << "Demande à " << ami << " " "notre ami de m \'appeller" " \n" ;}
    Je suis noyé . Impossible de faire fonctionner ce morceau de code .

    Sauriez-vous m'expliquer pourquoi ?

    L'utilisateur doit entrer f ou m et la réponse doit changer en fonction de l'entrée ? pige pas .

    Merci à vous .

    Cordialement.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    est-ce le code complet ? des erreurs de recopie ? un code d'exemples à ne pas suivre ?
    Sans initialisation de f et m, c'est pas près de fonctionner.
    D'où sort ami ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else if
     
            (ami_sex == m);
    D'ailleurs, qu'est-ce qui ne "fonctionne pas" ?
    Ca compile pas ? Ca devrait.
    Ca ne sort pas le résultat voulu ? cf ci-dessus.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut P.P.P. de Bjarne Stroustrup
    Bonjour Bousk .
    Merci pour ta réponse .
    Ca compile , mais cela ne fait pas la différence entre f et m c'est toujours le dernier texte qui s'affiche dans la console .
    Je ne parviens pas à comprendre mon erreur .
    Sans initialisation de f et m, c'est pas près de fonctionner.
    Non , c'est pas comme cela ?

    Cordialement.

  4. #4
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par Go'Gaule Voir le message
    Non , c'est pas comme cela ?
    Avec ça, tes variables sont bien déclarées, mais pas initialisées.
    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int f = 0, m = 1; // Là j'ai bien initialisé mes variables
    Car si tu utilise une variable pour une comparaison sans l'avoir initialisée avant, le comportement est indéfini

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    En l'occurence ton code fonctionne exactement comme il est écrit. Qu'il soit mal écrit par rapport à ta pensée initiale n'est qu'un problème de grammaire et syntaxe.

    Je pense qu'il te faut repartir de bien plus loin et réviser tes bases.
    Différencier déclaration et initialisation/affectation.
    La syntaxe d'un if/else if/else.
    2 notions qui ne sont pas spécifiques C++ qui plus est, et identiques dans bien des langages.

    Une remarque plus générale, peut-être dûe à l'utilisation du forum, mais la lisibilité du code est pas terrible (identation, sauts de ligne). Une bonne lisibilité aide à une bonne relecture et débug du code.

    Edit:
    suite au commentaire ci-dessus.
    Une variable déclarée prend une valeur par défaut totalement indéfinie.

    Edit-2:
    est-ce le code complet ? des erreurs de recopie ? un code d'exemples à ne pas suivre ?
    Ce serait donc ton propre code en réponse d'un exercice du bouquin ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut P.P.P. de Bjarne Stroustrup
    Bonjour à toutes et tous .

    @Bousk
    Ce serait donc ton propre code en réponse d'un exercice du bouquin ?
    Oui c'est mon propre code , en réponse ...

    Merci .
    Cordialement.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Ok parce qu'initialement je pensais qu'il s'agissait de code exemple
    Auquel cas, révise les parties précédentes, et voir les remarques plus hautes (déclaration/initialisation/affectation, if/else if/else, les délimiteurs de bloc {} )
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut P.P.P. de Bjarne Stroustrup
    Bonjour à toutes et tous .

    @Bousk . Merci .Mais
    Auquel cas, révise les parties précédentes,
    Tu pense bien que c'est ce que je fais depuis deux jours sans parvenir à comprendre .D' ou ma demande d' aides / explicatives .. hum!

    Cordialement.
    PS : En fait c'est comment je fait pour que f ou m s'ajoute à ami_sex ???

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Pour ajouter f ou m à ami_sex ?
    Il s'agit d'une addition, et donc de l'opérateur +
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ami_sex = ami_sex + f;
    ami_sex = ami_sex + m;
    ami_sex += f;
    ami_sex += m;
    Mais on tourne en rond avec le problème d'initialisation de f et m.
    Affiche f et m, regarde leurs valeurs, tu seras surpris .
    N'hésite pas à demander de l'aide sur ce forum, et à consulter la FAQ et les tutos qui fournissent de très bons exemples et cours !
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut
    Qu'entends tu par "s'ajouter" ?

    f, m et ami_sex étant des entiers tu peux sans problème les ajouter à l'aide de l'opérateur +, cependant je doute que ce soit ce que tu cherches à faire.

    Ne chercherais-tu pas à comparer ami_sex avec f et m afin de déterminer le sexe de l'ami plutôt ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut P.P.P. de Bjarne Stroustrup
    Bonjour à toutes et tous .

    @Dalini71
    Ne chercherais-tu pas à comparer ami_sex avec f et m afin de déterminer le sexe de l'ami plutôt ?
    Ben oui .
    Si j'ai tout compris :
    Je créé une variable initialisée à 0Je demande f pour féminin m pour masculin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout <<"Entrez f pour féminin et m pour masculin ";
    J'enregistre f ou m C'est à partir de la que cela coince ...
    Si je teste , ami_sex reste à 0 . f et m ne s'enregistre pas .

    Cordialement

  12. #12
    Membre averti Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par Go'Gaule Voir le message
    J'enregistre f ou m
    Non, tu demandes à l'utilisateur de saisir une variable sur l'entrée standard, et celle-ci sera stockée dans la variable ami_sex. Tu n'agis en rien sur f ou m ici.

    Citation Envoyé par Go'Gaule Voir le message
    C'est à partir de la que cela coince ...
    Normal que ça coince, "ou" n'est pas un mot clé du C++ et cette ligne ne veut rien dire.

    Je pense que ce que tu cherches à faire c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int ami_sex = -1;
    int f = 0, m = 1;
     
    cout << "Quel est votre sexe (0 pour féminin, 1 pour masculin) ?" << endl;
    cin >> ami_sex;
     
    if (ami_sex == f)
        cout << "Vous êtes une femme" << endl;
    else if (ami_sex == m)
        cout << "Vous êtes un homme" << endl;
    else
        cout << "Vous n'avez pas saisi de valeur correcte" << endl;

  13. #13
    Membre averti
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Points : 439
    Points
    439
    Par défaut
    Pourquoi ne pas donner le texte de l'énoncé (et ses références dans le livre) ?

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1
    Points : 2
    Points
    2
    Par défaut As tu trouver le problème !?
    Je n'est pas tout lu les commentaires... mais en effet il a beaucoup d'erreur dans ce code ... sans faire attention à la syntaxe ( car c'est difficile a lire )

    utilise un char char ami_sex;inutile, effacer

    mettre des 'F'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (ami_sex == m);
    efface le ; car ça annonce la fin et le cout ne s’exécute pas

    et fais attention à la syntaxe...

  15. #15
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Les lettres F et M et f et m ont toutes les quattres des équivalents en valeur entières. En partant du principe que tu récuères leur valeur ascii, tu peux te baser sur cette table pour définir les valeurs possibles pour chacun des choix : http://www.asciitable.com/

    Cela étant dis, c'est tout simlpement une mauvaise idée : tu devrais comparer les caractères avec des caracters;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char f = 'f';
    char m = 'm';
     
    char user_sex;
     
    cin>> user_sex;
     
    if( user_sex == f ) // ...
    else if( user_sex == m) //...
    Quelque chose qui ressemblerait à ça.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut P.P.P. de Bjarne Stroustrup
    Bonsoir à toutes et tous .

    @Klaim , Merci pour tes explications .

    Mon code original ... il y as un ou deux jours ressemblait au tien , mais ne fonctionnais pas . Il me reste à comprendre pour quoi .

    Merci à tous .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int ami_sex = 0;
    int f , m ;
    int à la place de char , f et m non initialisés ?? est-ce cela ?? ami_sex initialisé à 0 .

    Cordialement.

  17. #17
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Aucun type natif de C++ ne va être initialisé si tu ne le fais pas toi même. Là f et m ont des valeurs indéfinies, tu ne peux pas deviner ce que ça va être mais a coup sur ça sera des restes de la mémoire.

    Initialize TOUJOURS tes variables avec une valeure.

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

Discussions similaires

  1. Blocage sur un exercice du livre de Bjarne Stroustrup
    Par Go'Gaule dans le forum Débuter
    Réponses: 17
    Dernier message: 13/02/2012, 13h23
  2. Itération suivant Bjarne Stroustrup ..Operand ?
    Par Go'Gaule dans le forum Débuter
    Réponses: 2
    Dernier message: 14/01/2012, 10h54
  3. Itération suivant Bjarne Stroustrup .
    Par Go'Gaule dans le forum Débuter
    Réponses: 6
    Dernier message: 12/01/2012, 16h37
  4. Principes et pratique avec c++ de Bjarne Stroustrup
    Par Go'Gaule dans le forum Débuter
    Réponses: 1
    Dernier message: 06/01/2012, 14h12
  5. Réponses: 7
    Dernier message: 15/03/2007, 21h20

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