En programmation le terme boucle fait référence à l’exécution répétitive d’une ou plusieurs instruction. Une boucle répétitive est une structure de contrôle qui permet de répéter l’exécution d’une séquence d’instructions. Elle comporte obligatoirement
- Un bloc d’instructions qui est exécuté à chaque itération
- Une instruction d’arrêt, grâce à laquelle la boucle s’arrête
- Un itérateur qui est le moyen par lequel on réalise la répétition
L’itération, couramment utilisé en programmation, est un processus qui consiste à répéter une séquence d’instructions afin de produire le résultat souhaité. La plupart des langages de programmation impérative implémente l’itération comme une boucle for ou une boucle while
Pour établir une boucle on met en œuvre un itérateur, il défini la manière de parcourir séquentiellement une collection d’éléments.
On dispose de plusieurs techniques pour mettre en œuvre un itérateur :
- Le compteur: il est placé à l’intérieur de la boucle, il compte le nombre d’itération.
- Une expression booléenne: la boucle s’arrête quand la valeur de l’expression booléenne qui contrôle la boucle est Faux .
- Le parcours d’une collection d’éléments: la boucle s’arrête lorsque le dernier élément de la collection est atteint.
- Un nombre entier: la boucle est répétée autant de fois que la valeur du nombre.
- Un intervalle: la boucle est répétée autant de fois qu’il ys d’éléménts dans l’intervalle.
Note: Une boucle sans itérateur est par définition une boucle infinie. Le seul moyen de l’arrêter est d’utiliser une instruction de sortie de boucle.
En Schema, un itération est guidée par une condition booléenne, un nombre, un ensemble ou un booléen
L’itération se décline sous quatre formes
- Itération conditionnelle, elle permet d’effectuer un traitement de zéro à plusieurs fois suivant qu’une expression booléenne est Vrai ou Faux.
- Itération bornée par un nombre ,elle permet d’effectuer un traitement un nombre de fois déterminé soit par un entier.
- Itération bornée par les valeurs de départ et d’arrivée d’un intervalle
- Itération booléenne, elle dépend des deux seules valeurs booléenne Vrai ou Faux
Une itération est constituée d’une expression itérable suivie d’une ou plusieurs instructions, terminée par le mot réservé Fin
Les expressions itérables correspondant à chaque forme d’itération sont
- Conditionnelle, l’expression itérable est une expression booléenne
- Bornée par un nombre, l’expression itérable est un nombre
- Bornée par un intervalle, l’expression itérable est un intervalles
- Booléen l’expression itérable est Vrai ou Faux
Une expression itérable peut être suivie du séparateur : suivi d’un identificateur., ce qui permet d’accéder à chaque élément ou index lors de l’itération.
Les algorithmes en Swift, Julia, Python
Itération conditionnelle
Dans la plupart des langages de programmation on implémente une itération conditionnelle avec l’expression while condition. Le langage Schema, ne défini pas de mot réservé équivalent à while en Julia, Python ou Swift.
l’instruction d’itération conditionnelle de Schema commence toujours par une expression booléenne. La valeur de l’expression est évaluée avant l’exécution des instructions à répéter. Il est possible la que la séquence d’instruction ne soient jamais exécutées si la condition est initialisée à Faux avant d »entrer dans la boucle.
Pour que la boucle se termine Il faut que dans a liste des instructions une instruction au moins évalue la condition à faux au bout d’un temps fini.
Prenons l’exemple de calcul de la somme des 3 premiers nombres entiers.
SommeDesTroisPremiersNombreEntier -> Entier somme <- 0 index <- 0 index < 3 index = index + 1 somme <- somme + nombre Fin <- somme Fin
La condition booléenne est index < 3 , la condition devlent Faux lorsque l’index devient ejal ou supérieur à 3 grâce à l’instruction index = index + 1.
Itération bornée par un nombre
Chaque expression itérable peut être suivie d’un séparateur : suivi d’un identificateur. Cette forme d’itérateur permet d’accéder à chaque élément lors de l’itération.
Expression_Itérable : Element séquence d’instructions Fin Expression_Itérable séquence d’instructions Fin
l’expression itérable est un nombre entier.
Si l’on veut afficher 3 fois “hello Steve“ on écrira , l’algorithme:
helloSteve 3 Afficher hello Steve Fin
Dans le cas d’un bloc d’instructions
helloSteve 3 Afficher hello Steve Afficher have a nice day Fin Fin<
Pour accéder à la valeur de l’index de boucle que l’on appellera nombre on écrit
helloSteve 3 : nombre Afficher hello Steve #nombre fois Afficher have a nice day Fin Fin
Pour calculer la somme des 3 premiers nombres entiers, on écrit l’algorithme suivant avec une iteration sur un nombre entier.
sommeDesTroisPremiersNombreEntier_2-> Entier somme <- 0 index <- 0 3 index <- index + 1 somme <- somme + index Fin <- somme Fin
Itération bornée par un intervalle
l’expression itérable est un intervalle sur l’ensemble des nombres entier. Si l’on veut afficher 3 fois “hello Steve“ on écrira , l’algorithme:
L’intervalle est noté borneInférieure -> borneSupérieure
helloSteve
3 -> 5 Afficher hello Steve
Fin
Dans le cas d’un bloc d’instructions
helloSteve 3 -> 5 Afficher hello Steve Afficher have a nice day Fin Fin
Pour accéder à la valeur de l’index de boucle que l’on appellera nombre on écrit:
helloSteve 3 -> 5 : nombre Afficher hello Steve #nombre fois Afficher have a nice day Fin Fin
Calcul de la somme des 3 premiers nombres entiers, avec iteration sur un intervalle.
SommeDesTroisPremiersNombreEntier -> Entier somme <- 0 1 -> 3 : nombre somme <- somme + nombre Fin <- somme Fin
Itération infinie
Une itération infinie est représentée par un booléen Vrai ou Faux
C’est par définition une boucle infinie si aucune condition d’arrêt n’est spécifiée. Au moins une instruction particulière Sortie permet de provoquer l’arrêt immédiat de l’itération.
Les particularités de cette boucle: On ne l’utilise pratiquement jamais
- On peut simuler un boucle TantQue, l’instruction Sortie se trouve en début du bloc d’instructions à itérer
- On peut simuler une boucle Faire-Jusqua, l’instruction Sortie se trouve en fin de bloc d’instructions
- On peut exécuter tout ou partie d’un bloc d’instruction, les instructions Sortie sont placées dans le bloc d’instructions.
BoucleInfinie
Vrai Afficher infinite loop
Fin
La même boucle infinie avec la négation de Faux
BoucleInfinie Non Faux : index Afficher infinité loop Afficher itération #index Fin Fin
Note: l’instruction de Schema Sortie conditionnelle marque la fin de la boucle.
sommeDesTroisPremiersNombreEntier -> Entier somme <- 0 nombre <- 0 Vrai Si nombre > 3 Sortie somme <- somme + nombre nombre <- nombre + 1 Fin <- somme Fin
Les traductions en langages Swift, Julia, Python
copyright A rchitectures A pplicatives A vancées A3-Soft