La seule structure d’information nécessaire et suffisante utilisée pour élaborer la plupart des algorithmes écrits en Schema est le type abstrait Ensemble. Les primitives d’accès séquentiel ou indexé vues précédemment nous permettent de construire tous les styles de parcours d’un ensemble.
Afin de rendre le nom des primitives schéma plus conforme à leur fonction, on a renommé les 5 primitives de parcours d’ensemble: Premier, Prendre, Prendre_Element, Suivant respectivement par Initialiser, Element_Courant, Element, Element_Suivant
- Initialiser: rend l’accès au premier élément s’il existe par le biais de la primitive Enumerer
- Element_Courant: retourne l’élément pointé la le curseur courant
- Element: retourne l’élément courant et positionne le curseur sur l’élément suivant
- Element_Suivant: positionne le curseur sur l’élément suivant
La primitive Enumerer retourne Vrai tant que l’accès à un élément de l’ensemble est possible ce qui implique que la notation NON Enumerer indique la fin de l’ensemble. Par simplicité syntaxique on a utilisera la primitive Dernier en lieu et place de NON Enumerer
Note: la mise en œuvre par l’une des primitives Enumerer, Element_Courant, Element, Element_Suivant et Dernier nécessite d’être précédées par la primitive Inittialiser
Parcours séquentiel
Le parcours séquentiel d’un ensemble est une boucle classique contrôlée par une expression booléenne. La boucle se termine lorsque la valeur de ,expression booléenne FAUX
expression booléenne instructions Fin
Première forme de parcours séquentiel
parcours ensemble Ensemble Initialiser(ensemble) Enumerer(ensemble) element >- Element_Courant(ensemble) Afficher element #element Element_Suivant(ensemble) Fin Fin
Deuxième forme de parcours séquentiel
parcours ensemble Ensemble Initialiser(ensemble) Enumerer(ensemble) element >- Element(ensemble) Afficher element #element Fin Fin
Parcours sur ensemble itérable
Un ensemble est dit itérable lorsque l’on peut parcourir ses éléments sans recourir à une itération par expression conditionnelle. En Schema on notera le parcours sur un ensemble itérable de la façon suivante
Algorithme
parcours ensemble Ensemble ensemble : element Afficher element #element Fin Fin
le paramètre element est facultatif
Parcours par boucle infinie
une boucle infinie doit comporter une instruction de sortie sinon c’est une boucle qui ne s’arrète jamais
Vrai instructions... Fin
Algorithme
parcours ensemble Ensemble Initialiser(ensemble) Vrai Si Dernier(ensemble) Sortie element >- Element(ensemble) Afficher element #element Fin Fin
Traduction des algorithmes: Swift, Julia, Python
copyright A rchitectures A pplicatives A vancées A3-Soft