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 boucle


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut problème de boucle
    bonjour et salut a tous

    j'ai pas comprendre le principe de fonctionnement du boucle multiple comme ca


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(j=0;j<tailleTableau;j++){
            for(i=0;i<tailleTableau;i++){
                if(tableau[i] > tableau[i+1]){
                    tmp = tableau[i];
                    tableau[i] = tableau[i+1];
                    tableau[i+1] = tmp;
                     }
               }
          }

    est-ce-que quand j prend la valeur 1 i prend tous les valeur et et puis i prend la valeur 2
    ou pas?
    merci avance

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 377
    Points : 23 663
    Points
    23 663
    Par défaut
    Citation Envoyé par fethi1987 Voir le message
    est-ce-que quand j prend la valeur 1 i prend tous les valeur et et puis i prend la valeur 2 ou pas?
    Si tu voulais dire « et puis j prend la valeur 2 », alors oui.

    Il s'agit d'une boucle imbriquée. C'est beaucoup plus clair avec des indentations :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for(j=0;j<tailleTableau;j++)
    {
        for(i=0;i<tailleTableau;i++)
        {
            if(tableau[i] > tableau[i+1])
            {
                tmp = tableau[i];
                tableau[i] = tableau[i+1];
                tableau[i+1] = tmp;
            }
        }
    }

    À chaque tour, tout le contenu du corps de la boucle est exécuté, quel qu'il soit. On ne regarde pas a priori s'il s'agit d'une autre boucle pas.

    Donc, dans ton cas, « j » commence à zéro, la boucle « i » est exécutée en entier, donc « i » prend toutes les valeur de 0 à « tailleTableau-1 ». Puis « j » passe à 1 et on recommence. « i » prend une nouvelle fois toutes les valeurs de 0 à taileTableau-1, etc.

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Si tu voulais dire « et puis j prend la valeur 2 », alors oui.

    Il s'agit d'une boucle imbriquée. C'est beaucoup plus clair avec des indentations :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for(j=0;j<tailleTableau;j++)
    {
        for(i=0;i<tailleTableau;i++)
        {
            if(tableau[i] > tableau[i+1])
            {
                tmp = tableau[i];
                tableau[i] = tableau[i+1];
                tableau[i+1] = tmp;
            }
        }
    }

    À chaque tour, tout le contenu du corps de la boucle est exécuté, quel qu'il soit. On ne regarde pas a priori s'il s'agit d'une autre boucle pas.

    Donc, dans ton cas, « j » commence à zéro, la boucle « i » est exécutée en entier, donc « i » prend toutes les valeur de 0 à « tailleTableau-1 ». Puis « j » passe à 1 et on recommence. « i » prend une nouvelle fois toutes les valeurs de 0 à taileTableau-1, etc.
    merci

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 63
    Points : 40
    Points
    40
    Par défaut
    Salut,

    A chaque itération de j, la boucle pour i se reproduit entièrement, et donc pour j=0, il y a exécution de la boucle en i, pour pour j=1, il y a encore exécution de la boucle en i, et ainsi de suite, ça ressemble un peu au matrice : à chaque valeur d'une colonne on a plusieurs valeurs de lignes ! Du moment que tu passes à une colonne suivante, tu peux toujours y appliquer un traitement autant qu'il y a de lignes...

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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