Parcours dans un ensemble

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

Swift, Julia, Python

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

A3soft