à utiliser l’une des structures de programmation les plus importantes. La boucle while peut être utilisée de manière générale pour tout type de répétitions et se retrouve dans pratiquement tous les langages de programmation.
EXEMPLES
Une boucle while commence par le mot-clé while suivi d’une condition et de deux-points. Tant que la condition est remplie, les instructions du bloc de programme suivant sont répétées.
Dans la condition, on utilise en général les opérateurs de comparaison : < (plus petit), <= (plus petit ou égal), > (plus grand), >= (plus grand ou égal), == (égal), != (différent).
Une boucle while nécessite en général une variable à laquelle on attribue une valeur initiale, puis une modification après chaque passage dans la boucle.
Example 1: Dessiner une série de points
De petits cercles rouges doivent apparaître sur la diagonale de la fenêtre graphique. Le premier cercle est dessiné à la position (1, 1), le deuxième à (2, 2), etc.
Dans cet exemple, on utilise une boucle while avec un computeur i, qui détermine aussi la position des cercles. Tant que i est inférieur à 20 (condition de la boucle), les instructions du bloc indenté sont répétées, et i est augmenté de 1à chaque fois.
Programme:
# Gp6a.pyfrom gpanel import *
makeGPanel(0, 20, 0, 20)
setColor("red")
i = 1while i < 20:
pos(i, i)
fillCircle(0.5)
i = i + 1
Example 2: Dessiner un faisceau de lignes
Les points de départ et d’arrivée des lignes sont définis à l’aide de la variable de boucle. Celle-ci parcourt les valeurs de 0 à 40.
Pour mieux observer le dessin, tu ajoutes une courte pause avec delay(100)après chaque ligne.
Programme:
# Gp6b.pyfrom gpanel import *
makeGPanel(0, 40, 0, 40)
i = 0
while i <= 40:
line(i, 0, 40, i)
delay(100)
i = i + 1
Example 3: Dessiner une série de cercles (cercles remplis avec bord noir)
Le premier cercle a un rayon de 20 et chaque cercle suivant a un rayon diminué de 1.
Le dessin d’un cercle rempli avec un bord noir est défini dans la fonction blueCircle(r).
Programme:
# Gp6c.pyfrom gpanel import *
def blueCircle(r):
setColor("cyan")
fillCircle(i)
setColor("black")
circle(r)
makeGPanel(-20, 20, 0, 40)
i = 20
while i > 0:
pos(0, i)
blueCircle(i)
i = i - 1
delay(100)
Example 4: Utilisation de boucles while imbriquées
La variable x dans la boucle extérieure prend les valeurs de 1 à 19. Pour chaque nouvelle valeur de x, la boucle intérieure parcourt toutes les valeurs de y (la colonne à la position x est remplie).
Il faut faire attention à l’indentation correcte des deux blocs de programme.
Programme:
# Gp6d.pyfrom gpanel import *
makeGPanel(0, 20, 0, 20)
setColor("red")
x = 1
while x < 20:
y = 1
while y < x:
pos(x, y)
fillCircle(0.5)
y = y + 1
x = x + 1
Une boucle while commence par le mot-clé while suivi d’une condition et de deux-points.
Elle nécessite généralement une variable avec une valeur initiale et une modification après chaque itération.
Lors de l’utilisation de boucles while imbriquées, il faut faire attention à l’indentation correcte des blocs de programme.
À FAIRE PAR TOI-MÊME
1)
Choisis un système de coordonnées approprié et dessine le faisceau de lignes ci-contre.
2)
Complète le faisceau de lignes de l’exemple 2 pour obtenir l’image ci-contre.
3)
Modifie le programme de l’exemple 4 pour obtenir les graphiques suivants :