[Up][Previous][Next][Top] [Version PDF]

12-2 Les tableaux de données

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.

 
Créer et utiliser un tableau de données

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:

ArraySet(1, "Belgique")

ArraySet(2, "France")

ArraySet(3, "Italie")

ArraySet(4, "Allemagne")

ArraySet(5, "Suisse")

Cette séquence d'instructions crée le tableau ci-dessous:

Position

Information

1

Belgique

2

France

3

Italie

4

Allemagne

5

Suisse

Tableau de valeurs

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(11, "Bruxelles")

ArraySet(12, "Paris")

ArraySet(13, "Rome")

ArraySet(14, "Berlin")

ArraySet(15, "Berne")

ArraySet(21, "Bruxelles-Zaventem")

ArraySet(22, "Paris-CDG")

ArraySet(23, "Milan")

ArraySet(24, "Frankfurt")

ArraySet(25, "Zurich-Kloten")

 

#

Nom

#

Capitale

#

Principal aéroport

1

Belgique

11

Bruxelles

21

Zaventem

2

France

12

Paris

21

Paris-CDG

3

Italie

13

Rome

23

Milan

4

Allemagne

14

Berlin

24

Frankfort

5

Suisse

15

Berne

25

Zurich-Kloten

Tableau dimensionnel de valeurs

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).

1

Belgique

2

France

3

Italie

4

Allemagne

5

Suisse

6

 

7

 

8

 

9

 

10

 

11

Bruxelles

12

Paris

13

Rome

14

Berlin

15

Berne

16

 

15

 

18

 

19

 

20

 

21

Zaventem

21

Paris-CDG

23

Milan

24

Frankfort

25

Zurich-Kloten

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.

repeat with position:= 1 to 6

if ArrayGet(position)= EntryText then

capitale:= ArrayGet(position +10)

end repeat

Capitale

Choisir un pays au hasard parmi les pays de la Communauté Européenne et demander le nom de la capitale.

Voir: http://tecfa.unige.ch/campus/infospace/index.php?display=rooms&id=120212