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

Algorithmes et structures de données Discussion :

je comprends pas les (boucles imbriquées)


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Points : 44
    Points
    44
    Par défaut je comprends pas les (boucles imbriquées)
    Salut j'ai lu le cours des boucles imbriquées dans le site mais j'ai pas compris comment vous faite pour initialiser la première et la deuxième boucle
    s'il vous plaît expliquer moi avec un petit exemple comment intialiser les boucles imbriquées les incrémentées ...
    et merci d'avance

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Pour colorer les cases d'un echiquier on fait 2 boucles imbriquées, une boucle sur les lignes en faisant varier i et, dans une ligne, une boucle sur les colonnes en faisant varier j , soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Pour i de 1 à 8 
      Pour j de à 8
        Si (i+j modulo 2)=0 Case [ i , j ]= blanc Sinon Case [ i , j ]= Noir
    La syntaxe des initialisations et incrrémentation des indices de boucles dépendra du langage.
    En C : for (int i=1;i<8;i++) ...
    En Pascal : int i; for i:=1 to 8 ...
    etc ...
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 45
    Points : 44
    Points
    44
    Par défaut
    j'aimerai crée un programme qui affiche les nombre paires de 2 a N comme l'exemple suivant
    2 4 6 8 10
    2 4 6 8
    2 4 6
    2
    voila ce que j'ai fait

    pour i allant de 2 à 10 faire i =i+1
    pour j allant de 10 à 2 faire j=j-2
    si j mod 2==0
    écrire (j)
    finsi
    finpour
    finpour

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    pour i allant de 1 à 5 faire
      pour j allant de 1 à 5-i+1 faire 
        écrire (j*2)
      finpour
    finpour
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Que l'on peut penser également comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    soit max pour j
     
    pour j de 0 à max faire (par incrémentation de j)
       pour i de j à plus grand ou égal à 0 faire (par décrémentation de i)
           calculer la valeur sur la base de i
       fin pour i
    fin pour j
    Cet algo retourne un résultat inversé (par rapport à l'exemple donné) mais que l'on rétablit assez facilement lors de l'implémentation.
    Voici un exemple (BCB) où le résultat sera affiché à l'aide d'un Memo dans l'ordre attendu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    AnsiString N;
    int i, j;
    for( j = 0; j < 5; j++ )
        {
        N = "";
        for( i = j; i >= 0; i-- )
            {
            // on rempli la chaîne par la gauche
            N = IntToStr((i+1)*2) + " " + N;
            }
        // on insère la chaîne par le haut
        Memo1->Lines->Insert(0, N);
        }
    A plus !

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Salut !
    voilà le solution que je trouve ...

    algo paire
    var n,s,j : entier
    debut
    afficher "Entrer un nombre paire"
    saisir(n)
    n:=n+2
    pour j de 1 à n-2/2
    s:=0
    n:=n-2
    repeter
    si n>=2 alors
    s:=s+2
    afficher s
    finsi
    jusqu'a s=n
    finpour
    fin

Discussions similaires

  1. [SQL 2000]Where in qui ne comprend pas les listes
    Par zooffy dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 02/05/2007, 16h36
  2. Encore msvcr80.dll je ne comprend pas les FAQ
    Par bigbernie dans le forum Visual C++
    Réponses: 22
    Dernier message: 28/03/2007, 05h59
  3. [Optimisation]Eviter les boucles imbriquées
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 09/03/2007, 17h03
  4. je comprend pas les reference
    Par killer_instinct dans le forum C++
    Réponses: 13
    Dernier message: 08/12/2006, 18h49
  5. je ne comprends pas les message d'erreur g++
    Par emmesse dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 22/09/2006, 16h52

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