Accès par indices
Chaque élément d'un tableau peut être accédé par une clé entière.
Exemples:
a[1]
a[x]
a[10 + x / 2]
L'indice peut être toute expression qui s'évalue en un nombre entier.
L'expression ne peut contenir un élément de tableau.
Par exemple:
a[10 + b[5]] ... n'est pas valide
L'indice utilisé pour retrouver un élément n'est pas nécéssairement
celui utilisé quand la valeur est entrée avec un indice. Plusieurs fonctions
ou opérations peuvent avoir l'effet de réordonner ou renuméroter les éléments...
Scriptol permet de parcourir un tableau et accéder à une valeur sans connaître
sa clé entière, grâce à l'indice vide [] qui retourne l'élément actuellement
pointé.
Exemple:
scan a
print a[]
a[] = "lu"
/scan
La structure de contrôle scan pointe sur chaque élément successivement
et l'indice [] désigne l'élement courant.
On peut aussi parcourir le tableau avec l'itérateur intégré.
Accès par itérateur
L'itérateur est en fait un ensemble de méthodes des objets de type
liste, pour accéder séquentiellement aux élements contenus, en ordre ascendant
ou descendant:
begin() |
pointe sur le premier élement et retourne sa valeur. |
end() |
pointe sur le dernier élement et retourne sa valeur. |
inc() |
déplace sur l'élément suivant. Retourne la valeur pointée
avant, ou nil au-dela du dernier élément. |
dec() |
déplace sur l'élément précédant. Retourne la valeur
ou nil. |
index() |
retourne l'index de l'élément pointé. |
value() |
retourne la valeur de l'élément pointé. |
[] |
sans index, indice de l'élément courant. |
nil |
signifie "not in list" et est retourné par
différentes fonctions
quand aucune valeur ne peut être retournée. |
Exemple d'itération |
array
a = (1,2,3)
a.begin()
` déplace sur le premier élément while a[] <> nil
` teste si la fin de liste est atteinte print a[] `
affiche l'élément actuellement pointé a.inc()
` déplace sur l'élément suivant /while
|
|
>
1
> 2
> 3 |
On peut afficher le tableau en ordre inverse en remplaçant:
- a.begin() par a.end()
- a.inc() par a.dec()
Exercices |
1) Soit le tableau suivant:
array a = ("x", "y", "z")
Créer un tableau b en suffixant les éléments
de a par les lettres "ok" et affichez.
Utilisez une boucle while comme dans le texte.
Réponse |
|