Exemples : boucles bornées
Les exemples détaillés sur cette page ont pour but d'expliciter quelques situations usuelles d'utilisation des boucles bornées.
Les tracés suivants ont été réalisés à l'aide du module Turtle disponible dans Basthon.
Pour exécuter ces programmes dans un notebook Jupyter de Basthon, le notebook doit contenir l'instruction from turtle import *
et chaque dessin doit se terminer avec l’instruction done()
.
1. Répéter exactement les mêmes instructions
Un exemple classique est le tracé de polygones avec Turtle
. Voici le cas du carré.
1.1 Tracé d'un carré de côté 100
for i in range(4):
forward(100)
left(90)
forward(100)
et left(90)
sont exécutées quatre fois de suite.
1.2 Calcul de la longueur du trajet parcouru
Pour calculer la longueur du trajet parcouru on peut initialiser une variable parcouru
à 0 et lui ajouter la longueur de chaque segment parcouru :
parcouru = 0 # initialisation à 0
for i in range(4):
parcouru = parcouru + 100 # parcouru est augmentée de 100
print(parcouru)
400
parcouru
est une variable de cumul. Évidemment dans le cas du périmètre d'un carré, on connait une opération plus efficace que quatre additions successives, mais ce n'est pas l'objectif ici.
On utilise une boucle pour répéter une instruction :
parcouru = parcouru + 100
est exécutée quatre fois de suite.
2. Répéter des instructions contenant des expressions dont la valeur est explicitement modifiée
2.1 Tracé d'une spirale
On souhaite réaliser une spirale composée de dix segments dont les longueurs sont successivement 10, 20, 30, ..., 100.
On peut utiliser une variable pas
contenant à chaque étape la longueur du tracé à réaliser. À la fin de chaque étape, la valeur de la variable pas
sera augmentée de 10.
pas = 10 # initialisation à 10
for i in range(10):
forward(pas)
left(90)
pas = pas + 10 # pas est augmenté de 10
forward(pas)
dépend du paramètre pas
et que celui-ci est modifié à l'intérieur de la boucle, les dix tracés ne sont pas identiques.
2.2 Calcul de la longueur du trajet parcouru
Cette fois encore, pour calculer la longueur du trajet parcouru on peut initialiser une variable parcouru
à 0 et lui ajouter la longueur de chaque segment parcouru, or cette longueur est la valeur de pas
.
parcouru = 0 # initialisation à 0
pas = 10 # initialisation à 10
for i in range(10):
parcouru = parcouru + pas # parcouru est augmentée de la valeur de pas
pas = pas + 10 # pas est augmentée de 10
print(parcouru)
550
3. Répéter des instructions contenant l'indice de boucle
3.1 Tracé d'une spirale
Dans l'exemple précédent, introduire une variable pas
contenant la longueur à tracer à chaque étape permettait de donner une interprétation à la valeur de cette variable. Pour modifier cette valeur entre deux étapes, il a fallu écrire une instruction spécifique dans la boucle :
pas = pas + 10
Une autre variable était présente dans le code et n'a pas été exploitée.
Il s'agit de l'indice de boucle, qui était nommé i
dans les exemples précédents.
Dans l'instruction for i in range(10)
l'indice i
prend dix valeurs successives : les entiers de 0 à 9. On peut utiliser cette variable, qui est modifiée implicitement au cours de la boucle, pour réaliser le même tracé sans introduire de nouvelle variable.
Par exemple le programme suivant permet d'obtenir le même tracé qu'au paragraphe 2.1.
for i in range(10):
forward(10 + 10 * i)
left(90)
i
prend les valeurs entières de 0 à 9, l'expression 10 + 10 * i
prend les valeurs : 10, 20, ..., 100.
3.2 Calcul de la longueur du trajet parcouru
En s'appuyant sur le programme de tracé précédent, le calcul de la longueur devient :
parcouru = 0
for i in range(10):
parcouru = parcouru + (10 + 10 * i)
print(parcouru)
550