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 :

Nombre d'itération d'une boucle POUR (pas <>1)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut Nombre d'itération d'une boucle POUR (pas <>1)
    Bonsoir,
    quand le pas (par défaut) de la boucle POUR vaut 1 le nombre d'itérations est Vf -Vi + 1 (valeur finale et initiale de la boucle)
    Mais quand le pas vaut 2,3... je n'arrive pas à trouver aucune relation d'ordre.
    Pouvez vous m'aider SVP.
    Merci.

  2. #2
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Nombre d'itération d'une boucle POUR (pas <>1)
    Bonsoir,

    J'ai l'impression que la formule proposée est inexacte.

    Si à chaque itération la grandeur considérée varie de (h), on obtiendra au bout de (N) étapes:
    Vf - Vi = N*h , d'où: Vf = Vi + N*h ,
    et dans le cas d'un pas égal à l'unité: Vf = Vi + N ,
    et non comme tu parais le déclarer Vf = Vi + N - 1 .

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    Merci beaucoup wiwaxia...j'ai testé et ça marche...mais avec le +1
    Je m'explique:
    Pour i de 1 a 10 faire nbr iteration = 10-1+1 = 10
    pour i de 5 a 10 faire nbr iteration = 10-5 + 1 = 6

    pour pas = 3
    pour i de 1 a 10 (pas =3) faire nbr iteration = (10-1)/3 + 1 = 4

    pour pas = 4
    pour i de 3 a 15 (pas =4) faire nbr iteration = (15-3)/4 + 1 = 4

    si le résultat n'es pas entier on a une boucle infini (i n'atteint jamais Vf)
    Merci énormément.

  4. #4
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Nombre d'itération d'une boucle POUR (pas <>1)
    Je vois ce que tu veux dire.

    Il y a un point de vocabulaire: une itération consiste en la répétition d'un calcul, d'un bloc d'instructions, ... etc.

    Quand un indice varie de 1 à 10 avec un pas égal à l'unité, il intervient (10 - 1 = 9) itérations (ou répétitions, étapes, incrémentations), et l'on effectue au total (10 - 1 + 1 = 10) opérations identiques.

    S'il varie plus généralement de (Vi) à (Vf) avec un pas (h), le nombre d'itérations est N = (Vf - Vi)/h
    et le nombre total de calculs: Nc = N + 1 .

    Il se peut que l'usage courant confonde les deux termes, sans grandes conséquences si l'on sait précisément ce que l'on fait.

    Question: un calcul exécuté deux fois est-il répété une fois ... ou deux ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    bj,

    opposé à ton point de vocabulaire.

    Il y a un point de vocabulaire: une itération consiste en la répétition d'un calcul, d'un bloc d'instructions, ... etc.
    https://developer.mozilla.org/fr/doc...it%C3%A9ration

    une itération c'est juste le nb de fois que tu fais un calcul (le même) mais avec la variable qui change.

    Merci beaucoup wiwaxia...j'ai testé et ça marche...mais avec le +1
    pour ton résultat tu vois bien que tu as posé Vf comme il faut pour step 3:
    Vi=1,
    Vf=10
    et comme par magie 1+3+3+3==10
    cette magie c'est juste le fait que t'as posé Vf = Vi+3k
    et evidemment pour compter le nb d'itérations il faut compter k + compter la premiere fois (qd la variable vaut Vi) idem k+1
    (qd tu fais ton compteur step 1, c'est exactement pareil, pour i=5 a 10, vf = vi+5*1, et avec k=5 et ton nombre d'iter c'est 5+1)


    si le résultat n'es pas entier on a une boucle infini (i n'atteint jamais Vf)
    généralement tu incrémentes ton compteur et tu sors de la boucle lorsque le compteur dépasse une cond limit, donc tu n'as pas de boucles infinie, tu finis par en sortir...


    si tu avais pris Vf = 11 au lieu de Vf=10
    tu aurais eu
    1 (premiere iter? 1<=11 oui)
    1 prend valeur 4
    4 (deuxieme iter? 4<=11 oui)
    4 prend valeur 7
    7 (troisieme iter? 7<=11 oui)
    7 prend valeur 10
    10 (quatrieme iter? 10<=11 oui)
    10 prend valeur 13
    13 (cinquieme iter? 13<=11 NON) <--on sort

    la formule donnerait qqch comme E( (vf-vi)/step)+1, avec E partie entiere, mais elle n'a aucun intérêt pratique à ma connaissance..

  6. #6
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Nombre d'itération d'une boucle POUR (pas <>1)
    Citation Envoyé par galerien69 Voir le message
    ... https://developer.mozilla.org/fr/doc...it%C3%A9ration

    une itération c'est juste le nombre de fois que tu fais un calcul (le même) mais avec la variable qui change ...
    On ne trouve rien de tel dans la référence que tu donnes.

    Mais pour aller dans ton sens, la même inexactitude figure dans un commentaire de code donné par Wikipédia, en contradiction de la définition donnée quelques lignes plus haut:

    Une itération en informatique est la répétition d'un bloc d'instructions dans un programme informatique.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a = 0
    for i from 1 to 3        // trois répétitions
    {
      a = a + i              // ajout de la valeur actuelle de i à a
    }
    print a                  // le nombre 6 est affiché (0 + 1; 1 + 2; 3 + 3)
    On devrait lire: trois incrémentations ou deux répétitions ...

    Encore une fois, c'est une approximation de langage qui, dans les commentaires, n'affecte pas la compréhension de l'algorithme.

    Il faut cependant être clair sur le sens des termes, comme en témoigne l'incompréhension initiale de cette discussion.

    Itérer:
    Empr. au latin iterare « recommencer, répéter; redire »
    Faire une seconde fois, une troisième fois, etc...`` (Littré).

    Une action recommencée une fois est bien exécutée deux fois, non ?

    La seule justification de cette confusion est l'extension de la notion d'itération au cas dégénéré d'un calcul unique (Vi = Vf)
    que l'on rencontre par exemple dans la double boucle itérative:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FOR i:= 1 TO (Max - 1) DO
      FOR j:= (i + 1) TO Max DO
        ...
    pour la dernière valeur du premier indice (i = Max - 1); il n'y a plus alors, au sens strict, de répétition, puisque l'on a dans ce cas:

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

Discussions similaires

  1. [Batch] Utilisation d'une boucle pour compter le nombre de fichiers
    Par Med_be dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 15/08/2014, 23h23
  2. Réponses: 6
    Dernier message: 16/08/2007, 11h19
  3. je sais pas utilisé une boucle pour ?
    Par napz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/10/2006, 01h09
  4. Réponses: 8
    Dernier message: 15/06/2006, 18h13
  5. [ImageMagick] Une boucle pour ImageLine ?
    Par isa150183 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/11/2005, 18h41

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