boucle for et if
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

boucle for et if



  1. #1
    partouchefrancis

    boucle for et if


    ------

    Bonjour,

    l'exercice suivant m'est demandé pour moi il devrait afficher 577891 mais il affiche 577890 pourquoi

    quand la boucle for arrive à la valeur m =9 elle l'exécute et cela donne 9 puis s'arrête car m doit être inférieur à n et non pas inférieur ou égal
    et ensuite on fait le if du bas qui doit exécuter p-m =1 et non pas 0
    quelqu'un peut il encore m'aider
    cordialement
    Code:
    # include <iostream> 
    using namespace std; 
    
    int main() 
    
    { int m; 
    	int p(10); 
    	int n(10); 
    	bool test(false); 
    
    
    	for ( m=n/2; m<n ; ++m) 
    	{if(test and ((m+n)%2 ==0)) {cout << m+1 << " ";} 
    
    	else {cout << m << " "; 
    	test = not test;}} 
    
    
     if (m > p) { cout << m+p << " ";} 
     else { cout << p-m << " ";} 
    
    
     return 0 ; 
     }

    -----
    Dernière modification par Jack ; 21/03/2017 à 11h04. Motif: Ajout balises code

  2. #2
    Bluedeep

    Re : boucle for et if

    Bonjour,

    Citation Envoyé par partouchefrancis Voir le message

    l'exercice suivant m'est demandé pour moi il devrait afficher 577891 mais il affiche 577890 pourquoi
    On ne connait pas l'intitulé de l'exercice donc il est difficile de deviner quel doit être le résultat.

    Par ailleurs, on est obligé de regarder le code pour voir le langage utilisé (C++); il aurait été courtois pour les lecteurs de le préciser dans le titre (ou au moins dans le message).

  3. #3
    partouchefrancis

    Re : boucle for et if

    rebonjour étant nouvel utilisateur de votre forum , j'ai effectivement oublié demettre que c'était en c++

    il s'agit d'un quiz ou il y a vait plusieurs réponses possibles
    et personnellement je ne comprends pas pourquoi il affiche un en dernier alors que d'après moi quand il arrive dans la derniere boucle à
    m=9 ensuite il fait p-m et donc 10-9 =1 et non pas 0
    j'aimerais comprendre
    la réponse du quiz est bien celle là avec un 0 en dernier et je ne comprends pas pourquoi
    cordialement

  4. #4
    Jack
    Modérateur

    Re : boucle for et if

    Citation Envoyé par partouchefrancis Voir le message
    rebonjour étant nouvel utilisateur de votre forum , j'ai effectivement oublié demettre que c'était en c++
    Ne pas négliger les règles d'usage avant de poster: http://forums.futura-sciences.com/pr...ves-forum.html

    je n'ajouterai pas les balises code à chaque fois.

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : boucle for et if

    Sur le fond, pourquoi ne fournis-tu pas un code qui compile? tes "and" et "not" doivent être remplacés par de vrais opérateurs de C++

    PS: après avoir remplacé les opérateurs, j'ai testé et çà affiche 0 en dernier. Quel est le problème alors?
    Dernière modification par Jack ; 21/03/2017 à 12h46.

  7. #6
    Bluedeep

    Re : boucle for et if

    Citation Envoyé par partouchefrancis Voir le message
    rebonjour étant nouvel utilisateur de votre forum , j'ai effectivement oublié demettre que c'était en c++

    il s'agit d'un quiz ou il y a vait plusieurs réponses possibles

    Le code posté ne ressemble ni de près ni de loin à un quizz .
    Ou alors j'ai la vue qui baisse.

  8. #7
    partouchefrancis

    Re : boucle for et if

    rebonjour
    il s'agissait bien d'un quiz dans laquelle i y avait 4 réponses possibles et celle ci m'a été confirmé comme bonne
    la question était laquelle de ces 4 possibilité affiche 577890 lors de l'exécution du code
    je n'ai donc pas jugé utile de surcharger la discussion ici en mettant les autres possibilités
    j'utilise geany
    si j'exécute le code il affiche bien 577890 mais si je décortique les lignes de code

    il y a plusieurs passages dans la boucle for avec m -5, m=6 m=7 m=8 m=9 et un affichage : 57789 et la boucle s'arrête car m est égal à n
    après la dernière boucle pour m = 9 on sort de la boucle for avec un m =9 et on fait la conditionnelle if avec if m>p ce qui n'est pas le cas car 9 n'est pas supérieur à 10 et on opte donc pour else et on doit afficher p-m ce qui donne 10-9=1 et non pas 0
    c'est cela que je ne comprends pas et il n'y a pas besoin d'ophtalmo
    cordialement

  9. #8
    Spazi

    Re : boucle for et if

    Lorsque vous sortez de la boucle, m vaut 10, et non pas 9 comme vous le pensez.
    Ce qui est d'ailleurs étrange vu que vous écrivez vous-même "la boucle s'arrête car m est égal à n" et n vaut 10.

  10. #9
    partouchefrancis

    Re : boucle for et if

    merci de votre réponse mais je ne comprends pas
    car quand m =9 la boucle se fait et c'est 9 qui est affiché puis la boucle repart mais ne se fait pas puisque à ce moment là m=10 donc si la boucle ne se fait pas elle le dernier m à s'afficher est 9
    et après le if avec p-m soit 10-9 =1
    pouvez vous m'expliquer s'il vous plait
    cordialement

  11. #10
    Jack
    Modérateur

    Re : boucle for et if

    puisque à ce moment là m=10
    avec p-m soit 10-9 =1
    Il faudrait savoir: un coup m est égal à 10, puis il devient égal à 9.

    M = 10 pour sortir de la boucle, donc p-m = 10 - 10 = 0, c'est normal.

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/09/2014, 21h47
  2. problème boucle interruption avec boucle spi
    Par alice123 dans le forum Électronique
    Réponses: 8
    Dernier message: 16/03/2013, 03h26
  3. Diagramme de Bode boucle ouverte et boucle fermée
    Par toniocb dans le forum Physique
    Réponses: 4
    Dernier message: 21/06/2012, 14h24
  4. Probleme boucle for ou boucle do...while imbriquées
    Par Pilou81 dans le forum Électronique
    Réponses: 8
    Dernier message: 09/06/2010, 11h32
  5. Boucle ouverte boucle fermée
    Par invitedaf7b98f dans le forum Physique
    Réponses: 5
    Dernier message: 10/01/2010, 16h13