while (tant
que)VARIABLE
ENTIER i
DEBUT
i <-- 0
TANT QUE i < 5
FAIRE
ECRIRE(i)
i <-- i + 1
FIN TANT QUE
ECRIRE "FIN DU PROGRAMME"
FINi=0
while [[ $i < 5 ]]
do
# Affiche i
echo $i
# Incrémente i
(( i = i + 1 ))
done
echo "Fin du programme"0
1
2
3
4
Fin du programme
do-while
(faire tant que)VARIABLE
ENTIER i
DEBUT
i <-- 0
FAIRE
ECRIRE(i)
i <-- i + 1
TANT QUE i < 3
ECRIRE "Après la boucle i vaut " i
FIN0
1
2
Après la boucle i vaut: 3
Si l’on modifie la valeur initiale de i (par exemple ici
on lui affecte la valeur 5), le comportement des programmes précédents
change.
Le premier programme n’entre pas dans la boucle
(i < 5 n’est jamais vrai):
VARIABLE
ENTIER i
DEBUT
i <-- 5
TANT QUE i < 5
FAIRE
ECRIRE(i)
i <-- i + 1
FIN TANT QUE
ECRIRE "FIN DU PROGRAMME"
FINLe second programme (faire-tant que) exécute une fois la boucle puis sort aussitôt:
VARIABLE
ENTIER i
DEBUT
i <-- 5
FAIRE
ECRIRE(i)
i <-- i + 1
TANT QUE i < 5
ECRIRE "Après la boucle i vaut " i
FINwhile et
do-whileEn reprenant les deux structures de contrôle précédentes, faire les exercices suivants:
for
(pour)Boucle dans laquelle on définit:
Ainsi, si on veut :
ii étant à 0 au départi devant être inférieur à 5i augmentant de 1 à chaque itérationOn écrira:
POUR i allant de 1 à 5
...
FIN POUR
Dans de nombreux langages:
for (let i = 1; i <= 5 ; i++) //...POUR i allant de w à x:
i prend la valeur initiale wi inférieur ou égal à la valeur xExemple:
Pour i allant de 1 à 3
ECRIRE(i)
FIN PourSortie:
1
2
3
La ligne suivante a une signification différente selon la situation :
Pour i allant de 1 à 3
i à
1i puis vérifie si
i est inférieur à 3i N’EST PAS inférieur ou égal à
3Utiliser un tableau pour noter les valeurs successives des variables est indispensable (au début) à la compréhension des algorithmes.
Pour l’algorithme précédent, cela donne:
| ligne | i |
Sortie | Remarque |
|---|---|---|---|
| 1 | 1 | Entrée dans la boucle (i prend la valeur 1) |
|
| 2 | 1 | 1 | |
| 3 | 2 | Retour à la ligne 1 et incrémentation de i |
|
| 1 | 2 | comparaison avec la condition de sortie | |
| 2 | 2 | 2 | Affichage à la suite de la ligne précédente |
| 3 | 3 | Retour à la ligne 1 et incrémentation de i |
|
| 1 | 3 | comparaison avec la condition de sortie | |
| 2 | 3 | 3 | Affichage à la suite de la ligne précédente |
| 3 | 3 | Retour à la ligne 1 et incrémentation de i |
|
| 1 | 4 | comparaison avec la condition de sortie | |
| Fin du programme | 4 | condition sortie atteinte |
for (int i = 0; i < 5 ; i++) {
printf("i=%d", i);
}
printf("Fin de boucle");i=1
i=2
i=3
i=4
Fin de boucle
for (int i = 1; i <= 3 ; i++) //...
for (int i = 1; i <= 3 ; i++) //...
i++ signifie: i prend la valeur de
i + 1
for (int i = 1; i <= 3 ; i++) //...
Ce qui est strictement identique à:
for (int i = 1; i <= 3 ; i = i + 1) //...
VARIABLES
i EST_DU_TYPE NOMBRE
j EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
POUR i ALLANT_DE 0 A 5
DEBUT_POUR
AFFICHER i
FIN_POUR
FIN_ALGORITHME
Affichage:
012345
FONCTIONS_UTILISEES
VARIABLES
i EST_DU_TYPE NOMBRE
j EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
POUR i ALLANT_DE 0 A 5
DEBUT_POUR
AFFICHER* i
FIN_POUR
FIN_ALGORITHME
Affichage:
0
1
2
3
4
5
FONCTIONS_UTILISEES
VARIABLES
i EST_DU_TYPE NOMBRE
j EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
POUR i ALLANT_DE 0 A 5
DEBUT_POUR
AFFICHER i // pas de saut de ligne
AFFICHER* " " // saut de ligne séparé de l'affichage de i
FIN_POUR
FIN_ALGORITHME
Affichage:
0
1
2
3
4
5
VARIABLES
i EST_DU_TYPE NOMBRE
j EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
POUR i ALLANT_DE 0 A 3
DEBUT_POUR
AFFICHER i
POUR j ALLANT_DE 0 A 4
DEBUT_POUR
AFFICHER j
FIN_POUR
AFFICHER* " "
FIN_POUR
FIN_ALGORITHME
Affichage:
001234
101234
201234
301234
Affichage correspondant à i (boucle externe):
001234
101234
201234
301234
Affichage correspondant à j (boucle interne):
001234
101234
201234
301234
POUR i allant de 0 à 3
ECRIRE "** i="
ECRIRE i
POUR j allant de 0 à 4
ECRIRE "j="
ECRIRE j
FIN POUR
FIN POUR
Affichera:
** i=0
j=0
j=1
j=2
j=3
j=4
** i=1
j=0
j=1
j=2
j=3
j=4
** i=2
j=0
j=1
j=2
j=3
j=4
** i=3
j=0
j=1
j=2
j=3
j=4
Faire les exercices de cette série : série d’exercices
Pour calculer la puissance d’un nombre, on peut utiliser ce programme:
VARIABLE
ENTIER nombre
ENTIER puissance
ENTIER resultat
ENTIER i
DEBUT
nombre <-- 2
puissance <-- 4
resultat <-- 1
POUR i ALLANT DE 0 à puissance
puissance <-- puissance * nombre
FIN POUR: i <-- i + 1
ECRIRE "Après la boucle i vaut " i
ECRIRE resultat
FIN
| ligne | nombre | puissance | resultat | i |
|---|---|---|---|---|
| 9 | 2 | 4 | 1 | |
| 10 | 2 | 4 | 1 | 0 |
| 11 | 2 | 4 | 2 | 0 |
| 10 | 2 | 4 | 2 | 1 |
| 11 | 2 | 4 | 4 | 1 |
| 10 | 2 | 4 | 4 | 2 |
| 11 | 2 | 4 | 8 | 2 |
| 10 | 2 | 4 | 8 | 3 |
| 11 | 2 | 4 | 16 | 3 |
| 10 | 2 | 4 | 16 | 4 |
| 14 | 2 | 4 | 16 | 4 |
Pour calculer une série de puissance, on peut donc imbriquer cette boucle dans une autre:
| ligne | nombre | puissance | resultat | i | puissance <=10 | i < puissance |
|---|---|---|---|---|---|---|
| 6 | 2 | 0 | VRAI | |||
| 8 | 2 | 0 | 1 | - | ||
| 9 | 2 | 0 | 1 | 0 | - | FAUX |
| 12 | 2 | 0 | 1 | |||
| 6 | 2 | 1 | VRAI | |||
| 8 | 2 | 1 | 1 | - | ||
| 9 | 2 | 1 | 1 | 0 | - | VRAI |
| 10 | 2 | 1 | 2 | 0 | - | VRAI |
| 9 | 2 | 1 | 1 | 1 | - | FAUX |
| 6 | 2 | 2 | VRAI | |||
| 8 | 2 | 2 | 1 | - | ||
| 9 | 2 | 2 | 1 | 0 | - | VRAI |