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 :

utilisation du bool


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut utilisation du bool
    Bonjour à tous,
    Voila je suis en iut informatique (1ere année) et j'ai un exo à faire, or on ne nous a pas expliqué comment utilisé un booléén en programmation c++.
    J'ai donc testé quelque chose mais ... ca ne fonctionne pas je crois que la syntaxe est plutot mauvaise.
    Si quelqu'un pourrait m'aider.
    Merci bien.


    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
    #include <iostream>
    using namespace std;
    bool intervalles(int a,b,c)
    {
    bool interv;
    if (a<b || a<c)
    interv=true
    else
    interv=false
     
    return interv;
    }
     
    int main()
    {
    int A,B,C;
    cout <<veuillez entrer 3 entiers: "<<endl;
    cin>>A>>B>>C;
    if (intervalles(A))
    cout <<"le premier parametres A est définit dans l'intervalle ["<<B<<","<<C<<"]"<<endl;
    else
    cout <<"le premier parametres A n'est pas définit dans l'intervalle ["<<B<<","<<C<<"]"<<endl;
    }
    Enoncé:
    1.Ecrivez une fonction prenant en parametres 3 entiers et retrounant un booléeen. La valeur de retour sera true si le 1er parametre est compris d&ans l'intervalle définit par les 2 parametres suivants, false sinon. ....
    2.Ecrivez maintenant dans ce meme fichier la fonction principale main qui demandera à l'utilisateur d'entrer 3 entiers ....

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    Ca compile ça ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    Ben non lol mais j'aimerais savoir quelles sont les failles (nombreuses soit-elleà que j'ai pu faire. !!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    bool intervalles(int a,b,c)
    Pas certain que ce soit du C++ correct...

    if (a<b || a<c)
    interv=true
    else
    interv=false
    Et les points virgules ?
    De plus le test ne me semble pas répondre à l'énoncé.

    Enfin, tu as déclaré un type de retour à main, il faudrait peut être finir la fonction par un return (ce n'est qu'un warning mais bon...)

    Après j'ai pas essayé de compiler, je peux pas là tout de suite, mais déjà ...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    Si desolé les points virgule je les avaient mis (c'est en recopiant) mais que faut-il pour que ca puisse répondre au test?

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Quelles sont les spécifications de ta fonction ? Vérifier si a appartient à [b,c] ou c appartient à [a,b] ??? Ou autres choses.

    Car le test :
    me semble très suspect.

    Et puise bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout <<veuillez entrer 3 entiers: "<<endl;
    L'utilisateur ne sait pas dans quel ordre il doit les rentrer, d'abord l'intervalle, ou l'intervalle à la fin. Sois plus précis.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    Si tu ne copie pas ce que tu tente de compiler...

    if (intervalles(A))
    J'avais pas vu.... pourtant elle est grosse celle là

    Bon je vais pas te faire ton exo, hein

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    Lol bon arretez là de me lamenter...
    J'ai pas copié car je suis connecté sur le serveur ssh - machine linux sur emacs de l'université et là je suis sur windows d'ou l'absence du copié collé.
    Bon voici l'énoncé:

    1.Dans un nouveau fichier intervalles.cc, ecrivez une fonction prenant en parametre 3 entiers et retournant un booléen. La valeur de retour sera true si le premier parametre est compris dans l'intervalle définit par les 2 parametres suivants, false sinon.
    Pour ecrire cette fonction, vous partirez du principe que le second parametre de la fonction définit la borne inférieure de l'intervalle et le troisieme définit la borne supérieur.
    2.Ecrivez maintenant dans ce meme fichier la fonction principale main qui demandera à l'utilisateur d'entrer 3 entiers, et qui affichera soit "le premier parametre ... est compris dans l'intervalle [.....] soit le premier parametre n'est pas compris dans l'intervalle [......]. Prenez en compte le fait que les deux parametres definissant l'intervallle peuvent etre entrés dans n'importe quel ordre.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Par défaut
    Ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (a<b || a<c)
        interv=true;
    else
        interv=false;
    peut être beaucoup plus simplement écrit :


  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    voila ce que me met le compilateur:
    intervalles.cc: Dans funtion "int main()":
    intervalles.cc:6: error: too few arguments to function 'bool intervalle(int,int,int,)'
    intervalles.cc:26: error: at this point in file

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Par défaut
    Déjà répondu....

    Mais le test n'a toujours pas l'air de répondre à l'énoncé !

  12. #12
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    voila ce que me met le compilateur:
    Et en lisant le message d'erreur tu ne te rends pas compte de ton erreur ridicule ?
    Si ce n'est pas le cas tu ferais peut-être mieux de changer de voie. Parce que bon, tu m'as tout l'air d'avoir beaucoup de mal pour des choses extrêmement triviales.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    Oui Monsieur qui sait tout, j'ai tres bien vu l'erreur il me manque des arguments pour apeller la fonction (int,int,int) mais je ne sais pas quoi faire.
    J'ai essayé function (int a,int b, intc),
    aussi function (int a,b,c),
    plein d'autres truc mais rien ne marche alors si tu as la réponse ca serait sympa à toi

  14. #14
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    J'ai essayé function (int a,int b, intc),
    aussi function (int a,b,c),
    plein d'autres truc mais rien ne marche
    Le C++ n'est pas vraiment un langage qui s'apprend en tâtonnant, lire un bon cours peut parfois aider aussi.

    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
    bool intervalles(int a, int b, int c)
    {
        return (b < a) && (a < c);
    }
     
    int main()
    {
        int A, B, C;
     
        ...
     
        if (intervalles(A, B, C))
        {
            ...
        }
     
        return 0;
    }

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    Merci bien pour ta réponse mais il y a toujours un probleme:
    "il me manque des arguments pour apeller la fonction (int,int,int) ", il n'y aurait pas un moyen par hasard de modifier l'appel à la fonction afin que les 3 parametres qu'elle doit utiliser fonctionne.

  16. #16
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Mon code est correct, si tu as toujours des problèmes il faut que tu nous montres le tien.

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    En fait il me met que j'ai un probleme à cet endroit là:
    bool intervalles(int a, int b, int c)

    Voilà ce que me repond xterm pour cette ligne
    error: too few arguments to function `bool intervalles(int, int,
    int)'

    C'est la seule erreure qu'il me repere

  18. #18
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    On peut voir le code complet ?

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    Bon finalement le programme fonctionne à merveille j'ai juste changé cette ligne du code:
    if ((intervalles(A)) que j'ai remplacé bien sur par if ((intervalles(A,B,C)).
    Pourquoi tu as ecrit en tant qu'action:
    {
    return (b < a) && (a < c);
    }

    Enfin est-ce plus convenable, moi j'ai ecrit le code de la fonction tel que je l'ai appris.

    Merci beaucoup encore, étourdi que je suis.


    Voici le code complet:



    #include <iostream>
    using namespace std;

    bool intervalles (int a,int b,int c)
    {
    bool interv;

    if (a>b && a<c)
    interv=true;
    else
    interv=false;

    return interv;
    }

    int main ()

    {

    int A,B,C;

    cout <<"Veuillez entrer 3 entiers: "<<endl;
    cin >>A>>B>>C;

    if (intervalles(A,B,C))
    cout<<"le premier parametre A est definit dans l'intervalle ["<<B<<","<<C<<"]"<<endl;
    else
    cout <<"le premier parametre n'est pas definit dans l'intervalle ["<<B<<","<<C<<"]"<<endl;
    return 0;
    }

  20. #20
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    En fait il me met que j'ai un probleme à cet endroit là:
    bool intervalles(int a, int b, int c)

    Voilà ce que me repond xterm pour cette ligne
    error: too few arguments to function `bool intervalles(int, int,
    int)'

    C'est la seule erreure qu'il me repere
    Le compilateur est même gentil, il te donne la ligne, qui est
    if (intervalles(A))
    Alors on regarde la ligne d'appel à la fonction, on regarde la déclaration, on revient vers l'appel et on remarque une différence : on a déclaré une fonction qui prend trois arguments et on n'en fournit qu'un : il y a donc un problème.

    Pourquoi tu as ecrit en tant qu'action: [...]
    Parce que tes tests originaux ne correspondaient pas du tout à ce qui était demandé.
    Si ta question c'est pourquoi il a pas fait un if et utilisé une variable temporaire, c'est tout simplement parce que c'était inutile.

    Accessoirement, si tu veux reposter du code à l'avenir, apprends l'utilisation de la balise [code].

Discussions similaires

  1. Réponses: 9
    Dernier message: 07/11/2011, 09h43
  2. Utilisation d'une variable bool
    Par Whippet dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/04/2008, 16h59
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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