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 :
iest affecté à la valeur dedeb(i←deb)- si
iest différent definalors 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]Neuf 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
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
conditionest vraie : exécuterinstructionsinon, 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
conditionest 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.
