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 :

probléme de comprehension d'un mini programme


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Points : 41
    Points
    41
    Par défaut probléme de comprehension d'un mini programme
    bonjour;
    je débute en c j'ai un petit probléme avec une boucle car je voudrais savoir combien de fois elle s'execute, mon probléme c'est que je sais pas expliquer pourquoi j'ai un tel résultat (elle s'execute 5 fois par contre pour moi elle doit s'executer 9 fois et donc m'afficher 0 1 2 3 .. 8.
    voici ma mini boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main(int argc, char *argv[])
    {
     int i=0;
     for(i=0;++i<10;i++)
    printf("%d ",i);
        return 0;
    }
    le résultat afficher est 1 3 7 5 9
    merci d'avance

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Fie,

    N'oublie pas de tenir compte des 2 opérateurs ++ appliqués à i.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    merci pour ta réponse je voudrais vous expliquez mon raisonnement et après si c'est de me dire ou j'ai pas raison.
    notre boucle commence par i=0 la première chose a faire c'est qu'elle vérifie la condition d'entrer en boucle qui est ++i<10 ca veut dire i+1<10 ce qui équivalent de i<9 et après que la boucle soit fini elle augmente i de i+1
    c'est ce que je comprend de cette boucle
    veuillez m'aider a comprendre correctement svp

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    1 - initialisation i=0

    2a - estimation de la condition ++i<10 : i est incrémenté et est comparé à 10 : i vaut 1
    3a - affichage de 1
    4a - fin du for : i++ : i vaut 2

    2b - estimation de la condition ++i<10 : i est incrémenté et est comparé à 10 : i vaut 3
    3b - affichage de 3
    4b - fin du for : i++ : i vaut 4
    etc.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 483
    Points : 13 681
    Points
    13 681
    Billets dans le blog
    1
    Par défaut
    ++i<10 ca veut dire i+1<10 ce qui équivalent de i<9
    Non. ++i<10 est équivalent à :
    1. i est incrémenté (i=i+1)
    2. on évalue la valeur de i (qui a déjà été incrémentée)
    3. on compare cette valeur à 10


    Il ne faut pas oublier que les opérateurs ++ et --, qu'ils postfixés ou préfixés, modifient la valeur de i. Cela se fait avant ou après l'évaluation de l'inégalité et on ne peut donc pas "déplacer" l'opérande "+1" d'un côté de ou l'autre de l'opérateur d'inégalité.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Bktero Voir le message
    Non. ++i<10 est équivalent à :
    1. i est incrémenté (i=i+1)
    2. on évalue la valeur de i (qui a déjà été incrémentée)
    3. on compare cette valeur à 10


    Il ne faut pas oublier que les opérateurs ++ et --, qu'ils postfixés ou préfixés, modifient la valeur de i. Cela se fait avant ou après l'évaluation de l'inégalité et on ne peut donc pas "déplacer" l'opérande "+1" d'un côté de ou l'autre de l'opérateur d'inégalité.
    c'est bien ce qu'il a dit :

    Citation Envoyé par diogene Voir le message
    2a - estimation de la condition ++i<10 : i est incrémenté et est comparé à 10 : i vaut 1
    .

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    merci a tous j'ai bien compris

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 26/10/2006, 12h35
  2. Réponses: 4
    Dernier message: 09/10/2006, 22h12
  3. Réponses: 1
    Dernier message: 23/09/2006, 16h11
  4. [Cookies] problème de comprehension-sessions
    Par fk04 dans le forum Langage
    Réponses: 3
    Dernier message: 06/06/2006, 21h09
  5. problème d'ajout et suppression de programmes
    Par ran_hery dans le forum Windows XP
    Réponses: 2
    Dernier message: 14/12/2005, 12h21

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