# III. Les boucles bornées

### Principe

Une boucle bornée permet de répéter des instructions un nombre donné de fois.
On connait à l'avance le nombre d'itérations à effectuer.

★ Choisir le nombre d'itérations et exécuter le programme.
Le programme ci-dessous exécute trois fois de suite la même séquence d'instructions.
★ Lire ce programme.
★ Prédire l'affichage obtenu.
★ Exécuter le programme.
from turtle import * for k in (0, 1, 2): # on repète 3 fois forward(100) # avancer de 100 left(120) # tourner à gauche de 120°

### Syntaxe

Dans la boucle ci-dessous, la variable k parcourt de gauche à droite chacun des
trois éléments l'ensemble ordonné (0, 1, 2)
Pour chaque valeur de k, le bloc d'instructions après l'indentation est exécuté.

### Remarque

La fonction range() permet de simplifier l'écriture des boucles parcourant des nombres d'entiers.
★ range(5) permet de parcourir l'ensemble (0, 1, 2, 3, 4).
Attention! La dernière valeur est 4 et non 5.
★ range(3, 8) permet de parcourir l'ensemble (3, 4, 5, 6, 7)
★ range(1, 11, 3) permet de parcourir les entiers de 1 à 10 en faisant des pas de 3, Cela
correspond à l'ensemble (1, 4, 7, 10)

Comme le montrent les exemples ci-dessous, la variable associée à la boucle "for"
peut parcourir des ensemble de nombres entiers ou des chaines de caractères.

### Exemples

★ Ce programme affiche le double des entiers de 0 à 4.
for k in range(5): d = 2*k print(d)

★ Ce programme affiche la somme des carrés des entiers de 1 à 9.
somme = 0 for i in range(1,10): somme = somme + i**2 # i**2 désigne i au carré print(somme)

★ Ce programme affiche les caractères composant le mot "PYTHON".
for lettre in "PYTHON": print(lettre)

★ Ce programme affiche les mots de 5 lettres.
for mot in ("lune","jupiter","venus"): if len(mot) == 5: print(mot)

### Exercices:

★ Modifier le programme ci-dessous pour obtenir un carré.

from turtle import * couleurs = ["violet","red","blue"] for i in range(3): color(couleurs[i]) forward(70) left(120)

from turtle import * couleurs = ["violet","red","green","blue"] for i in range(4): color(couleurs[i]) forward(70) left(90)

★ Ecrire un programme qui parcourt les entiers naturels de 17 à 99 et affiche les entiers divisible par 17.
On rappel que l'instruction 13 % 5 renvoie 3, le reste de la division euclidienne de 13 par 5.
Prenez garde à n'oublier aucun diviseur!

for k in range(17, 100): if k % 17 == 0: print(k)

Le programme ci-dessous comporte deux erreurs de syntaxe.
★ Corriger les et vérifier l'affichage obtenu.

from random import randint for i in range(10) d = randint(1, 6) # dé à 6 faces if d = 4: print("Gagné") else: print("Perdu")

from random import randint for i in range(10): # ERR 1 ":" d = randint(1, 6) # dé à 6 faces if d == 4: # ERR 2 "==" print("Gagné") else: print("Perdu")

★ Compléter le programme ci-dessous pour qu'il appele dix fois la fonction pileouface.

from random import randint def pileouface(): alea = randint(0, 1) if alea == 0: print("PILE") else: print("FACE")

from random import randint def pileouface(): alea = randint(0, 1) if alea == 0: print("PILE") else: print("FACE") for i in range(10): pileouface()

### Pour aller plus loin ...

Tentez de relever les trois défis graphiques en utilisant le bloc de code ci-dessous.

### Tableau d'état des variables

Un tableau d'état des variables donne les valeurs prises par les variables intervenant dans
le programme pour chaque étape d'exécution.
Un tel tableau permet de mieux comprendre la chronomogie du programme. Il permet
également de répondre à la question "quel est l'affichage en sortie de programme".

Voici un exemple de boucle bornée décomposée pas à pas et le tableau d'état des varaibles correspondant:

### Exercices:

hhhhhhhhhhhhhhh