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 :

Explication boucle for


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : etudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Par défaut Explication boucle for
    Bonjour,

    svp je suis un débutant et je souhaiterais avoir l'explication de cette boucle définie comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (I=0, J=0 ; I<N ; I++)
         {
          T[J] = T[I];
          if (T[I]) J++;
         }

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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 422
    Par défaut
    Apparement, c'est une boucle qui sert à « tasser » ton tableau vers le début en éliminant tous les éléments nuls.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Par défaut
    Si je te le traduis en français:
    Pour J = 0 et I = 0 (initialisation)
    Tant que I<N (condition)
    faire I++ (incrémentation = I + 1 à la fin des instructions) (itération)
    {
        le tableau T à l'indice J prend la valeur du tableau T à l'indice I
        Si T[I] est différent de NULL alors j'incrémente J
    } (instructions)
    Comme il a été dit précédemment, le but de cette boucle est d'éliminer les valeurs NULL du tableau sans en changer l'ordre des éléments.

    Pour débuter je ne peux que te conseiller d'éviter les boucles for, source d'erreurs chez beaucoup, de faire ton initialisation avant une boucle while classique (tu prends un poil plus de lignes mais tu liras plus facilement ton code).
    De plus, c'est pas vraiment joli ce: if (T[I]) J++; privilégie plutôt un retour à la ligne après la déclaration de la condition.

  4. #4
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 1
    Par défaut J'ai eu un probléme de la même façcon veuiller m'expliquer !! :/
    Regardez cette boucle :
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0,j=0;text[i];i++)
    pouvez-vous m'expliquer pourquoi la partie condition contient text[i] ?
    merci d'avance

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 597
    Par défaut
    Bonjour,

    La boucle est parcourue tant que text[i]. Sachant qu'un scalaire est 'vrai' s'il est non nul cela correspond à parcourir la chaîne text tant que l'on n'a pas atteint la fin (car le terminateur '\0' vaut 0).

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 765
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par étudiantsupérieur Voir le message
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0,j=0;text[i];i++)
    pouvez-vous m'expliquer pourquoi la partie condition contient text[i] ?
    Bonjour
    La condition se lit "tant que text[i]" sous-entendu "tant que text[i] est vrai". or, en C, une valeur "non zéro" est considérée comme vraie. Donc se traduit finalement par "tant que text[i] différent de 0"
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 201
    Par défaut
    A noter que c'est quand même mal écris, et que text[i]!='\0' aurait été tellement plus explicite.

Discussions similaires

  1. Explication boucle For ..... Next
    Par falcon02 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/10/2013, 19h18
  2. demande explication sur boucle "FOR"
    Par maori dans le forum Général Python
    Réponses: 4
    Dernier message: 02/01/2009, 18h37
  3. Explication de la boucle for(;;)
    Par Info_76 dans le forum C
    Réponses: 2
    Dernier message: 29/08/2008, 11h54
  4. Explication boucle "for"
    Par mactech dans le forum Langage
    Réponses: 7
    Dernier message: 13/12/2005, 16h38
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 12h54

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