Algorithmique impérative/Itération

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche
Algorithmique impérative
PyQt
Sommaire
Théorie de l'algorithmique impérative
  1. Qu'est ce qu'un algorithme impératif Fait à environ 50 %
  2. Les types, les opérateurs et les expressions Fait à environ 50 %
  3. Les constantes, les variables Fait à environ 50 %
  4. Les instructions, les blocs d'instructions Fait à environ 50 %
  5. L'assignation Fait à environ 50 %
  6. Les exécutions conditionnelles Fait à environ 50 %
  7. Les structures itératives Fait à environ 50 %
  8. Les tableaux Fait à environ 50 %
  9. Les procédures et les fonctions Ébauche
  10. Le type enregistrement Fait à environ 50 %
  11. L'algorithme au final : vue d'ensemble En cours
  12. Exercices En cours
Outils de travail
Problèmes posés, analysés, résolus et commentés
Annexes
Modifier ce modèle ce sommaire


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 :

  1. i est affecté à la valeur de deb (i←deb)
  2. si i est différent de fin alors on exécute instruction
  3. incrémenter i (i←i+1)
  4. 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 :

  1. si condition est vraie : exécuter instruction sinon, continuer après FINTANTQUE
  2. 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
  instuction
  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 :

  1. exécuter instruction
  2. si condition est vrai : continuer au point 3 sinon, reprendre au point 1
  3. 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.