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 :

Itération sur deux variables à la fois


Sujet :

C++

  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut Itération sur deux variables à la fois
    Bonjour,

    J'ai fait une condition sur deux compteurs. Je veux une itération sur les deux :

    0*0
    1*1
    2*2
    ...

    Or, avec ma fonction ce qui est bizarre, c'est qu'il y a un bug au debut : la valeur "valeur" fait deux fois 0.

    Est-ce à cause du fait que j'ai mis l'itération de "valeur" en second ? Car, quand je change et que je met" valeur" en premier et "valeur_second " en deuxieme, ça ne le fait plus ...

    Peut-être que l'itération sur deux variable ne s'écrit pas comme ça ? pourtant, j'ai vu cette écriture sur le site .
    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
    #include <iostream>
    #include <math.h>
     
    double Aire(short valeur,short valeur_second )
        {
            return valeur*valeur_second;
     
     
        }
     
    void affichage(short valeur,short valeur_second,double res)
    {
        std::cout<<"le resultat de l'aire de  : "<<valeur<<" et "<< valeur_second<<"est "<<res<<std::endl;
    }
     
    int main()
    {
     
        for (short valeur(0),valeur_second(0);valeur<10;valeur_second++ && valeur++)
        {
            std::cout<<valeur_second<<std::endl;
            std::cout<<valeur<<std::endl;
            affichage(valeur,valeur_second,Aire(valeur,valeur_second));
     
     
        }
        //std::cout<<"la taille est  :  "<<sizeof(<<std::endl;
        return 0;
    }
    merci d'avance
    Allez le RC LEns

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Bonjour,

    Essaye de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (short valeur(0),valeur_second(0);valeur<10;valeur_second++ && valeur++)
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (short valeur(0),valeur_second(0);valeur<10;valeur_second++, valeur++)
    Je n'ai pas cherché à reproduire le problème sur mon environnement de développement, mais juste qu'un "&&" dans une boucle for, je n'ai jamais vu ça !
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut merci
    bin figure toi que tu as tout a fait raison
    je te remercie pour ta reponse ca me permet d'avancer , dans ma progression
    c'est grace a des gens comme toi que j'avance

    merci beaucoup

    bonne soirée
    Allez le RC LEns

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Avec plaisir,

    Bonne soirée et amuse toi bien
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Une petite question quand meme...

    Si c'est pour que valeur et valeur_second aient, de toutes manières, la même valeur, pourquoi ne pas se contenter d'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int main()
    {
     
        for (short valeur(0),);valeur<10;vvaleur++)
        {
            std::cout<<valeur<<std::endl;
            affichage(valeur,valeur,Aire(valeur,valeur));
        }
        return 0;
    }
    Ce serait quand meme beaucoup plus simple, non???

    [EDIT]En outre, à titre tout à fait personnel, je n'aime pas trop gérer deux variables dans une seule boucle "for"...

    Si c'est pour gérer deux variables qui évoluent de manière analogue (bien qu'ayant deux valeurs différentes), je préfères encore une boucle while ou une boucle do ... while, en fonction des circonstances:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main(){
        short first(5);
        short second(10)
        while(first < 15){
           /* ... */
          ++first;
          ++second;
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main(){
        short first(5);
        short second(10)
        do{
           /* ... */
          ++first;
          ++second;
       }while(first < 15);
    }
    Attention, il y a une toute petite différence entre les deux... sauras tu la trouver
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre averti
    Homme Profil pro
    Cadre informatique
    Inscrit en
    Avril 2013
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 183
    Points : 435
    Points
    435
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main(){
        short first(5);
        shor second(10)
        while(first < 15){
           /* ... */
          ++first;
          ++second;
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int main(){
        short first(5);
        shor second(10)
        do{
           /* ... */
          ++first;
          ++second;
       }while(first < 15);
    }
    Attention, il y a une toute petite différence entre les deux... sauras tu la trouver
    Oui!!!! Ca va planter à la ligne en rouge dans les 2 cas
    Sinon je lui laisse quand meme le plaisir de trouver la solution à ta question

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par Bysbobo Voir le message
    Oui!!!! Ca va planter à la ligne en rouge dans les 2 cas
    Sinon je lui laisse quand meme le plaisir de trouver la solution à ta question
    Ca ne va pas planter, ca va refuser de compiler... Nuance, mais elle est de taille

    Tout le monde aura bien compris que c'est "juste" une faute de frappe, mais je corrige pour que ca compile
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  8. #8
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut heuuu
    comme je debute mes exemples ne sont pas d'une grande logique ce sont surtout des test de comprehension , mais je vais reflechir , deja peut etre apprendre la boucle do avant
    Allez le RC LEns

  9. #9
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par tamtam64 Voir le message
    comme je debute mes exemples ne sont pas d'une grande logique ce sont surtout des test de comprehension , mais je vais reflechir , deja peut etre apprendre la boucle do avant
    En fait, dés le moment où l'on parle d'une langage impératif dit de "troisième génération", il faut comprendre que tu rencontreras un grand nombre de concepts strictement semblable quel que puisse être le langage envisagé.

    Parmi ces concepts, on peut citer:
    1. La possibilité de tester une valeur et d'obtenir une réponse qui est soit "oui" soit "non" ( if ... else )
    2. La possibilité d'effectuer un test "à choix multiple", au minimum sur les valeurs numériques (switch ... case)
    3. La possibilité d'effectuer une boucle basée sur un compteur ( for( debut; fin; increment) )
    4. La possibilité de créer une boucle dans laquelle tu vérifies la condition d'entrée avant d'effectuer la boucle ( while(conditon) )
    5. La possiblité de créer une boucle dans laquelle tu vérifie la condtion pour y retrourner après avoir effectué la boucle ( do ... while(condition) )

    La syntaxe dépend évidemment du langage envisagé, mais tu peux te dire que n'importe quel langage impératif structuré te permettra au minimum de faire ces différentes choses et qu'il t'appartient de choisir la solution la plus efficace par rapport au cas sur lequel tu es occupé à réfléchir
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 16/03/2012, 10h42
  2. Boucle do sur deux variables
    Par bouabid_hanen dans le forum Fortran
    Réponses: 2
    Dernier message: 11/10/2010, 09h35
  3. Switch / case mais sur deux variables ?
    Par Bktero dans le forum Débuter
    Réponses: 4
    Dernier message: 15/06/2010, 15h58
  4. [VxiR2] Alerteur sur deux variables
    Par Frank Holstein dans le forum Deski
    Réponses: 5
    Dernier message: 16/02/2010, 13h22
  5. Requête avec 2 conditions sur deux variables
    Par mensoif dans le forum Langage SQL
    Réponses: 8
    Dernier message: 01/10/2009, 13h50

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