Vous avez appris à utiliser quelques données, lesquelles sont stockées dans des variables. Vous pouvez par exemple, conserver dans une variable le nom de la dernière action de l'utilisateur. Imaginons par contre que vous vouliez garder une trace complète de ses actions, par exemple, pour rejouer une partie ou pour chercher la cause des difficultés d'un apprenant. Vous n'allez bien sûr pas créer 600 ou 2000 variables! Pour stocker de nombreuses données en mémoire vive, on utilise un tableau de données. En général un tableau a plusieurs dimensions; malheureusement, les tableaux dans Authorware 3.5 sont unidimensionnels, il s'agit en fait de 'vecteurs'. A les différence des variables, les éléments d'un vecteur ne sont pas accessibles par leur nom, mais par leur position dans le vecteur.
La figure 12.1 explique comment générer des interactions à partir d'un vecteur de données. La création d'un tableau (étape (1) dans la See Créer et utiliser un tableau de données) se fait au moyen de l'instruction ArraySet dans une icône de calcul. Celle-ci prend deux arguments, la position de la donnée et la donnée elle-même. Prenons un exemple:
Cette séquence d'instructions crée le tableau ci-dessous:
Au cours de l'étape (2) de la See Créer et utiliser un tableau de données, vous utiliserez l'information du tableau pour construire les interactions. Cette opération consiste à rechercher une information dans ce tableau, selon sa position, et la stocker dans une variable que vous utiliserez par la suite.
NomPays := ArrayGet(5) La variable 'NomPays' prend la valeur "Suisse". Laquelle était stockée à la position 5 de l'array.
Vous pouvez utiliser ce tableau pour tirer un nom au hasard:
NomPays := ArrayGet(random (1,5,1))
Vous constatez que le tableau n'a pas de nom, Authorware ne gère qu'un seul tableau. En outre, celui-ci ne possède qu'une dimension. Vous pouvez néanmoins simuler deux dimensions:
ArraySet(21, "Bruxelles-Zaventem")
Dans l'exemple ci-dessus, le nom du pays est à la position i, sa capitale à la position 10+i, et de son aéroport principal à la position 20+i.. On peut donc se représenter les données comme un tableau, mais il s'agit en fait d'une liste dont certaines cases sont vides (Cf. See Tableau bidimensionnel de valeurs 'mis à plat' dans Authorware).
Pour rechercher de l'information dans un tableau, il faut créer une boucle (Cf. See Variables et fonctions) qui explore le tableau ligne par ligne et teste chaque information. Admettons que le sujet désire connaître la capitale d'un pays, il introduit le nom du pays (celui-ci est donc stocké dans la variable 'EntryText'). Il faut alors identifier ce nom dans le tableau. La procédure ci-dessous compare ligne par ligne le tableau au nom de pays communiqué par l'utilisateur. Si le nom de pays est identifié, on regarde le nom de capitale correspondant.
if ArrayGet(position)= EntryText then