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.
Nombre d'itération d'une boucle POUR (pas <>1)
Bonsoir, :D
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 .
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: :mrgreen: un calcul exécuté deux fois est-il répété une fois ... ou deux ?
Nombre d'itération d'une boucle POUR (pas <>1)
Citation:
Envoyé par
galerien69
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:
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:
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:
1 pièce(s) jointe(s)
Nombre d'itérations d'une boucle POUR (pas <>1)
Vous avez sans doute raison: l'usage veut que ce soit le nombre d'actions effectuées, même s'il est en désaccord avec l'étymologie.
Le plus curieux est je n'en aie pas trouvé de confirmation directe, lors d'une recherche sur "nombre d'itérations", hormis le détail mentionné dans l'article de Wikipédia. La détermination de cette grandeur (quand elle est mentionnée) est toujours très indirecte, car les calculs ne concernent en fait que la valeur finale de l'indice.
J'ai cependant découvert une expression dépourvue d'ambiguïté: celle de "nombre de tours de boucle", qui ne se réfère pas au contenu algorithmique et s'applique aussi aux instructions <WHILE ... DO> et <REPEAT ... UNTIL>; elle correspond implicitement à la dernière intervention:
Citation:
Envoyé par
tbc92
Dans le domaine informatique, quand on demande le nombre d'itérations, on demande combien de fois on passe dans le corps de la boucle ...
et me paraît beaucoup plus claire; il n'y aurait eu aucun débat si elle était apparue dès le premier message (ceci dit sans aucun reproche pour paskal++, qui a amené un sujet intéressant).
Nombre d'itérations d'une boucle POUR (pas <>1)
Citation:
Envoyé par
Flodelarab
... C'est normal, "itérer" n'existe pas ...
"On a beau dire : réjouissez-vous ; eût-on itéré mille fois ce commandement, la joie ne vient pas", Bossuet, Sermons, Joie du chrétien, Préambule.
https://www.littre.org/definition/it%C3%A9rer
https://artflsrv03.uchicago.edu/phil...ad=it%C3%A9rer
Il semble qu'on lui ait préféré, au cours du 17me siècle, le mot "réitérer".
http://www.cnrtl.fr/definition/it%C3%A9rer
Le Larousse mentionne "itération", mais ignore "itérer" et lui préfère "réitérer"; pareil pour le dictionnaire de l'Académie Française.
http://www.cnrtl.fr/definition/acade...%A9it%C3%A9rer
Citation:
Envoyé par
Flodelarab
... Ou plus précisément, c'est "réitérer" qui est usité ...
http://www.cnrtl.fr/definition/r%C3%A9it%C3%A9rer
https://www.littre.org/definition/r%C3%A9it%C3%A9rer
À vrai dire, je me suis retrouvé submergé par les liens trouvés ...
https://artflsrv03.uchicago.edu/phil...&start=0&end=0
Ce mot, qui relève depuis très longtemps de l'usage courant, me paraît présenter des difficultés à cause de la redondance de son étymologie (= "à nouveau" + "répéter"), que tu as toi-même pointée.
Citation:
Envoyé par
Flodelarab
... Personnellement, pas trop envie d'aller contre le sens du vent.
Moi aussi :D , ce serait du temps perdu.
En ce qui concerne l'informatique, il semble prudent de s'en tenir à: itérer / itération / processus itératif / nombre de tours de boucles (ou d'actions).
J'ai eu, en cette occasion, l'agrément de redécouvrir les dictionnaires classiques.
https://www.lexilogos.com/
https://www.littre.org/
http://www.cnrtl.fr/definition/
https://artflsrv03.uchicago.edu/phil...4/publicdicos/
Nombre d'itérations d'une boucle POUR (pas <>1)
Citation:
Envoyé par
galerien69
pour info c'était bien dans le lien @wiwaxia ...
Je cherchais obstinément une définition explicite du nombre d'itérations ... il est vrai les commentaires de l'un des exemples de ton article allaient dans le même sens, mais pas d'une manière assez claire, pour moi - je suis peut-être un peu de mauvaise foi.
Citation:
Envoyé par
galerien69
... concernant le fait d'itérer ou de looper ou boucler, je me demande si le choix du mot ne dépend pas du nombre de syllabes "phonétiques" à employer
t'itères: deux
tu boucles: trois
tu loopes: deux
Franchement, le franglais n'arrange rien à l'affaire, dans un débat d'interprétation de termes français; une personne non avertie t'entendant parler de ce sujet risquerait fort de louper le sens de tes propos ... :D
Cela résulte finalement d'une divergence de points de vue:
a) si l'on considère une à une les (Na) actions effectuées (forcément peu nombreuses), on aura:
# pour Na = 1 (action unique): pas d'itération (= répétition) au sens étymologique du terme;
# pour Na = 2, 3, 4 ... (plusieurs actions): 1, 2, 3 ... répétitions, et plus généralement (Na - 1);
b) si (point de vue du programmeur) l'on part du processus itératif devant conduire à la réalisation d'un certain nombre d'actions - en nombre éventuellement très élevé - on s'intéresse alors au nombre d'étapes effectuées, et l'usage a choisi l'expression "nombre d'itérations" pour désigner (Na); on ne peut aller contre, mais préférer cependant d'autres termes: nombre de tours de boucle , par exemple.
La suite d'instructions
Code:
1 2 3
|
i:= n;
WHILE (i>a) DO i:= i - 1; |
contient le processus itératif défini pas le couple (WHILE ... DO ...), quel que soit le nombre d'actions effectuées:
Na > 1 (n > a + 1) ; Na = 1 (n = a + 1) ou Na = 0 (n < a + 1) .