Algorithmique impérative/Itération
Les structures de contrôle itératives permettent d'exécuter plusieurs fois de suite une ou plusieurs instructions. Il en existe trois distinctes.
Structure POUR
[modifier | modifier le wikicode]La structure POUR permet d'exécuter une instruction un nombre connu de fois. Voici la syntaxe :
POUR i DE deb A fin FAIRE instruction FINPOUR
i
est l'identifiant d'une variable (qui doit bien sûr être déclarée).
deb
et fin
sont deux expressions de même type que i
: ce sont les valeurs entre lesquelles i va parcourir l'ensemble des valeurs intermédiaires.
La structure s'exécute de la façon suivante :
i
est affecté à la valeur dedeb
(i←deb
)- si
i
est différent defin
alors on exécuteinstruction
- incrémenter
i
(i←i+1
) - revenir au point 2
Il est évident que pour que le programme fonctionne deb
<fin
.
Exemples
[modifier | modifier le wikicode]Dix itérations
[modifier | modifier le wikicode]Lexique i : entier Début POUR i de 1 à 10 FAIRE Afficher(i); FINPOUR FIN
Ce programme va afficher :
1 2 3 4 5 6 7 8 9 10
Structure TANTQUE
[modifier | modifier le wikicode]TANTQUE condition instruction FINTANTQUE
condition
est une expression booléenne, comme dans la structure SI condition ALORS...
Cette structure est exécutée comme suit :
- si
condition
est vraie : exécuterinstruction
sinon, continuer aprèsFINTANTQUE
- reprendre au point 1
La boucle infinie
[modifier | modifier le wikicode]Il est possible grâce à cette structure de créer une boucle infinie :
TANTQUE VRAI instruction FTQ
Une boucle POUR
[modifier | modifier le wikicode]Il est possible de simuler une boucle POUR
à l'aide d'un TANTQUE
i←deb TANTQUE i <= fin instruction i←i+1 FTQ
Exemples
[modifier | modifier le wikicode]Structure REPETER
[modifier | modifier le wikicode]REPETER instruction JUSQU'A condition
condition
est une expression booléenne.
Cette structure s'exécute comme suit :
- exécuter
instruction
- si
condition
est vrai : continuer au point 3 sinon, reprendre au point 1 - exécuter ce qui suit le
JUSQU'A
La boucle infinie
[modifier | modifier le wikicode]Il est possible grâce à cette structure de créer une boucle infinie :
REPETER instruction JUSQU'A FAUX
Une boucle POUR
[modifier | modifier le wikicode]Il est possible de simuler une boucle POUR
à l'aide d'un REPETER
i←deb REPETER instuction i←i+1 JUSQU'A i=fin
Exemples
[modifier | modifier le wikicode]Comment déterminer la structure à utiliser ?
[modifier | modifier le wikicode]Le choix de la structure de contrôle se fait en fonction du nombre d'itérations à effectuer :
- si le nombre d'itérations est déterminé à l'avance, une boucle POUR est la plus appropriée,
- sinon :
- si la condition de boucle ne peut être évaluée avant la première itération, ou si au moins une itération doit être exécutée, la boucle REPETER est la plus appropriée,
- sinon la boucle TANT QUE est la plus appropriée.