• Aucun résultat trouvé

Même si un tableau regroupe plusieurs valeurs, celles-ci doivent pouvoir être utilisées séparément. C'est ici qu'entre en jeu la notion d'indice à l'intérieur d'un tableau. Ces indices sont utilisés entre crochets [] pour préciser la position de l'élément désiré dans le tableau. Les valeurs peuvent alors être traitées comme n'importe quelle variable :

Code : Actionscript

var monTableau:Array = new Array(3);

monTableau[0] = 4;

monTableau[1] = 5;

monTableau[2] = monTableau[0] + monTableau[1];

trace(monTableau[2]); // Affiche : 9

Attention, en programmation les indices des tableaux commencent toujours à 0. Ainsi le troisième élément du tableau se trouve à l'indice 2. Ce n'est pas très compliqué à comprendre, mais on a souvent tendance à l'oublier les premières fois.

Comme nous venons de le voir, les valeurs à l'intérieur d'un tableau se manipulent de la même manière que les variables. Toutefois, une valeur non initialisée dans le tableau aura une valeur par défaut, undefined :

Code : Actionscript

var monTableau:Array = new Array();

trace(monTableau[0]); // Affiche : undefined

Propriétés du type Array

Enfin pour en finir avec le type Array, nous allons voir quelques méthodes et propriétés qui pourront vous être utiles.

Tout d'abord lorsque vous utiliserez des tableaux, vous n'aurez pas besoin de connaître en permanence la taille de votre tableau. En revanche, vous pouvez à tout moment avoir besoin de connaître cette longueur de tableau. Pour cela, vous pouvez utiliser la propriété length associée aux tableaux de type Array. Voici comment l’utiliser :

Code : Actionscript

var monTableau:Array = new Array(5);

var taille:int = monTableau.length;

trace(taille); // Affiche : 5

Nous allons à présent voir différentes méthodes permettant d'insérer ou de supprimer des éléments dans un tableau.

D'abord, la méthode push() permet d'ajouter un ou plusieurs éléments à la fin du tableau. À l'opposé, la méthode unshift() insère un ou plusieurs éléments au début du tableau, c'est-à-dire à l'indice 0. Pour finir, la méthode splice() est un compromis car elle permet d'insérer des éléments à un indice spécifié.

Voici un exemple d'utilisation de ces méthodes : Code : Actionscript

var monTableau:Array = ["Site", "du", "Zéro"];

monTableau.unshift("Bienvenue");

monTableau.splice(1, 0, "sur","le"); monTableau.push("!");

trace(monTableau); // Affiche : Bienvenue,sur,le,Site,du,Zéro,!

La méthode splice() peut avoir des finalités différentes suivant les paramètres renseignés. Voici donc la signification de chacun de ses paramètres :

indice de départ où on se place pour effectuer les opérations

nombre d'éléments devant être supprimés à partir de l'indice de départ série d'éléments qui doivent être insérés à la suite de l'indice de départ.

Enfin, pour supprimer des éléments nous avons également trois méthodes : pop(), shift(), et splice(). Symétriquement à push() et unshift(), les méthodes pop() et shift() permettent de supprimer des éléments respectivement à la fin ou au début d'un tableau. Pour supprimer des éléments au milieu du tableau, il faut utiliser la méthode splice() présentée juste avant.

Encore une fois, voici un exemple pour bien comprendre : Code : Actionscript

var monTableau:Array = ["Bienvenue", "sur", "le", "Site", "du",

"Zéro", "!"]; monTableau.pop();

monTableau.splice(1, 2);

monTableau.shift();

trace(monTableau); // Affiche : Site,du,Zéro

Le type Vector

Le second type de tableaux utilisé en Actionscript est Vector. Vous verrez que ces tableaux sont très proches de ceux de type

Array, notamment ils sont également non fixés en taille. La principale différence vient du fait que les tableaux de type Vector sont typés. C'est-à-dire qu'une fois déclaré pour un certain type de variables, il n'est pas possible d'y mettre autre chose. Voyons tout ceci plus en détails !

Déclaration

Ici encore la déclaration ressemble à celle d'une variable, mais à une nuance près. Étant donné que les tableaux de type Vector sont typés, il est nécessaire de préciser le type de variables qui sera utilisé à l'aide des chevrons « <> ». Voici donc comment déclarer un tel tableau :

Code : Actionscript

var nomDuTableau:Vector.<Type> = ceQueJeMetsDedans;

Pour initialiser un tableau de type Vector, voici les méthodes proposées : Code : Actionscript

var monTableau:Vector.<String> = new Vector.<String>();

var monTableau:Vector.<int> = new Vector.<int>(3);

var monTableau:Vector.<String> = Vector.<String>(["Site", "du",

"Zéro"]);

Étant donné que ces tableaux sont typés, vous ne pouvez pas insérer une valeur dont le type ne correspondrait pas à celui déclaré. En effet, ceci entrainerait des erreurs d'exécution ou de compilation.

Notez que la taille du tableau peut toutefois être fixée en utilisant un paramètre supplémentaire de type Boolean et valant

true. Voici le code correspondant : Code : Actionscript

var monTableau:Vector.<int> = new Vector.<int>(3, true);

Gestion des éléments

Tout comme les tableaux Array, les valeurs internes peuvent être manipulées à l'aide d'indices mis entre crochets « [] ». Voici encore quelques exemples de manipulations de valeurs à l'intérieur d'un tableau :

Code : Actionscript

var monTableau:Vector.<int> = new Vector.<int>(10);

monTableau[0] = 0;

monTableau[1] = 1;

for(var i:int = 2; i < monTableau.length; i++)

{

monTableau[i] = monTableau[i-1] + monTableau[i-2];

}

trace(monTableau); // Affiche : 0,1,1,2,3,5,8,13,21,34

Pour les plus perspicaces, vous aurez vu apparaître les premiers termes de la Suite de Fibonacci qui sont en effet : 0,1,1,2,3,5,8,13,21,34.

En augmentant la taille du tableau, vous pourrez ainsi avoir tous les termes de la suite que vous désirez !

Grâce à cet exemple nous commençons à cerner l'intérêt de l'utilisation des tableaux. Effectivement lorsque nous utilisons des boucles par exemple, il devient relativement simple de lier notre variable i de boucle avec les indices du tableau. Ceci avait déjà été dit précédemment mais nous allons le rappeler, les boucles sont extrêmement utiles et performantes pour parcourir des tableaux.

Pour allier tableaux et fonctions, nous allons transformer le code précédent pour créer une fonction renvoyant le énième terme de la suite de Fibonacci. Découvrons cette fonction :

Code : Actionscript

function suiteFibonacci(terme:int):uint

{

var monTableau:Vector.<uint> = new Vector.<uint>(terme);

monTableau[0] = 0;

monTableau[1] = 1;

for(var i:int = 2; i < monTableau.length; i++) {

monTableau[i] = monTableau[i-1] + monTableau[i-2];

}

return (monTableau[terme-1]); }

trace(suiteFibonacci(10)); // Affiche : 34

trace(suiteFibonacci(20)); // Affiche : 4181

trace(suiteFibonacci(30)); // Affiche : 514229

Enfin pour finir, vous noterez que les méthodes push(), pop(), shift, unshift() et splice() fonctionnent également avec les tableaux de type Vector.

Les tableaux multidimensionnels

Documents relatifs