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 :

condition bool vector


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Par défaut condition bool vector
    Bonsoir tout le monde. J'ai besoin de votre conseil. regarder ce code:

    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
    #include <iostream>
    #include <vector>
    using namespace std;
    const int n(6);
    int main()
    {
        vector<int> jadwal(n);
        bool croissant;
        for(int i(0);i<n;i++)
        {
            cout << "taper nombre "<<i << endl;
            cin>>jadwal[i];
        }
        for(int i(0);i<n-1;i++)
        {
            if(jadwal[i]<jadwal[i+1])
            {
                croissant=true;
            }
            if(jadwal[i]>jadwal[i+1])
            {
                croissant=false;
            }
        }
        if(croissant){cout<<"croissant"<<endl;}
        else {cout<<"Decroissant"<<endl;}
        return 0;
    }
    Est ce que dans ce code le booléen croissant , prend toujours la valeur du dernier test de la boucle for, indépendamment des tests avant?
    Merci à vous;

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Non car l'inverse de '<' n'est pas '>' mais '>='. Et alors un if...else ou une ternaire est beaucoup plus approprié.

  3. #3
    Membre éclairé Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Par défaut
    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
    #include <iostream>
    #include <vector>
    using namespace std;
    const int n(6);
    int main()
    {
        vector<int> jadwal(n);
        bool croissant;
        for(int i(0);i<n;i++)
        {
            cout << "taper nombre "<<i << endl;
            cin>>jadwal[i];
        }
        for(int i(0);i<n-1;i++)
        {
            if(jadwal[i]<jadwal[i+1])
            {
                croissant=true;
            }
            if(jadwal[i]>=jadwal[i+1])
            {
                croissant=false;
            }
        }
        if(croissant){cout<<"croissant"<<endl;}
        else {cout<<"Decroissant"<<endl;}
        return 0;
    }
    Est ce que dans ce code le booléen croissant , prend toujours la valeur du dernier test de la boucle for, indépendamment des tests avant?
    Merci à vous;

  4. #4
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 759
    Par défaut
    Tes 2 tests ne servent à rien ... parce que tu travailles avec un booléen

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    croissant = (jadwal[i] < jadwal[i+1]);
    Et ensuite, le test de ta boucle POUR est mauvais parce que tu testes que l'ordre des 2 dernières valeurs
    Il faut s'arrêter lorsque ce n'est plus croissant (ou plus décroissant)

  5. #5
    Membre éclairé Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Par défaut
    Le code terminal:
    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
    #include <iostream>
    #include <vector>
    using namespace std;
    const int n(6);
    int main()
    {
        vector<int> jadwal(n);
        bool croissant=true,decroissant=true;
        for(int i(0);i<n;i++)
        {
            cout << "taper nombre"<<i << endl;
            cin>>jadwal[i];
        }
        for(int i(0);i<n-1;i++)
        {
            if(jadwal[i]>jadwal[i+1])
            {
                croissant=false;
     
            }
            if(jadwal[i]<jadwal[i+1])
            {
                decroissant=false;
            }
     
     
        }
        if(croissant && !decroissant){cout<<"croissant"<<endl;}
        if(croissant && decroissant){cout<<"Egales"<<endl;}
        if(!croissant && decroissant){cout<<"Decroissant"<<endl;}
        if(!croissant && !decroissant){cout<<"anarchie"<<endl;}
        return 0;
    }
    Merci de votre aide

  6. #6
    Membre éclairé Avatar de stracoma
    Homme Profil pro
    Médecin
    Inscrit en
    Août 2013
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Maroc

    Informations professionnelles :
    Activité : Médecin

    Informations forums :
    Inscription : Août 2013
    Messages : 413
    Par défaut
    avez vous des commentaires sur cette méthode:

    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
    #include <iostream>
    #include <vector>
    #include <array>
    using namespace std;
    const int N(6);
    int main()
    {
        int R(0);
        vector<int> tablo(N);
        array<int,N-1>note;
        for(int i(0);i<N;i++)
        {
         cout<<"tapez nombre"<<endl;
         cin>>tablo[i];
        }
        for(int i(0);i<N-1;i++)
        {
            if(tablo[i]<tablo[i+1])
            {
                note[i]=1;
            }
            if(tablo[i]>tablo[i+1])
            {
                note[i]=0;
            }
             if(tablo[i]==tablo[i+1])
            {
                note[i]=6;
            }
        }
        for(auto elem:note)
        {
           R+=elem;
        }
        if(R==5) {cout<<"croissant"<<endl;}
        else if(R==0) {cout<<"decroissant"<<endl;}
        else if(R==30){cout<<"Egales"<<endl;}
        else {cout<<"Anarchie"<<endl;}
        return 0;
    }
    Merci à vous

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

Discussions similaires

  1. [FAQ] vector<bool>, spécialisation du standard
    Par Aladore dans le forum Contribuez
    Réponses: 3
    Dernier message: 20/08/2010, 10h50
  2. Obtenir l'adresse du contenu d'un std::vector<bool>
    Par camboui dans le forum SL & STL
    Réponses: 11
    Dernier message: 23/10/2009, 14h29
  3. Error ode45 / initial condition vector
    Par The_FD dans le forum MATLAB
    Réponses: 4
    Dernier message: 14/12/2006, 15h56
  4. Vector bool, bidimensionnel
    Par Zacks dans le forum SL & STL
    Réponses: 7
    Dernier message: 13/06/2006, 17h48
  5. vector<bool> comme argument de fonction
    Par Krishna dans le forum SL & STL
    Réponses: 11
    Dernier message: 09/09/2004, 08h30

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