Ce cours, vous montre comment fonctionne un tableau de variables et les pièges à éviter.

Tableau à une dimension :

Donc reprenons, l'histoire de nos bouteilles, un tableau ç'est comme un panier comportant plusieurs bouteilles de n'importe quel type (liquide, solide..).
La seule différence c'est que l'on a un nom pour le panier, mais pas pour les bouteilles, elles sont dans le panier, dans un ordre stricte qui ne bougera pas, donc pas besoin de connaitre leur nom, si on connait le nom du panier et de la position de la bouteille dans ce panier, c'est amplement suffisant.

On peut avoir autant de bouteilles que l'on veut dans ce panier.

Exemple, je prend mon panier de bouteille vide qui contiennent des liquides, on va les remplir.

En Algorythme :

Code
Fonction : RemplirMesBouteilles

Variables :
monPannier est un pannier de bouteille liquide
monVerre contient du liquide

Début :
| monPannier[0] <- Jux d'orange
| monPannier[1] <- Eau
| monPannier[2] <- Bierre
| monPannier[3] <- Vin Rouge
| monVerre <- monPannier[0] + monPannier[1]
|
| Boire monVerre
Fin



J'obtiens un verre de jus d'orange dilué avec de l'eau.

Vous constatez une chose flagrante, c'est que la première bouteille du panier est considérée comme la bouteille 0... Pourquoi pas la bouteille 1.

Je vais tenter de vous expliquer cette bizarerie, Attention, c'est des notions de programmation bas niveau (fonctionnement interne) :
Quelque soit la variable, cela reste un endroit sur votre disque dur, où est inscrit une information, dont le type permet de connaitre la place que l'information prend en terme d'octet. Un tableau dans la mémoire, se sont donc, plusieurs informations de même type qui sont écrites à la suite, le nom du tableau défini la position de la première information stocké, ensuite il faut se décalé pour atteindre les autres informations.
Dans mon exemple de panier, c'est comme si on me disait, va prendre une bouteille, hop, j'attrape directement la première, si je veux la deuxième, je décale 1 fois le nombre que l'on met entre crochet pour un tableau correspond au décalage à effectué.

Ce qu'il faut retenir c'est que le premier élément du tableau a l'index 0 et que son nom est son adresse mémoire

Petit exemple d'addition en ruby, avec des tableaux :

(Ruby)
1
2
3
4
5
6
def additionner
  
tabReel = [1234, -240.25, -3.75# là, le tableau est typé Reel

  
monResultat tabReel[1] + tabReel[4]
end


monResultat est égale à 30.25

Je le répète encore une fois, faites très attention à l'index du tableau, ne pas savoir ce repérer dedans, c'est une grande source d'erreur.
Cela marche de la même façon, pour tous les types de variable.

Tableau à dimension Multiple :

Comme je vous l'ai expliqué un tableau peut être représentant pas un panier, contenant des bouteilles. Mais maintenant supposez, que dans un coffre, j'ai plusieurs paniers de même dimension (contenant le même nombre de bouteille), ce qui en algorithmer aurait cette tête là :

Code
Fonction : RemplirMonCoffre

Variables :
monPannier1 est un pannier de bouteille
monPannier2 est un pannier de bouteille
monPannier3 est un pannier de bouteille
monPannier4 est un pannier de bouteille
monCoffre est un coffre de pannier


Début :
| monPannier1[0] <- une bouteille d'eau
| monPannier2[0] <- une bouteille de jus d'orange
| monCoffre[0] <- monPannier1
| monCoffre[1] <- monPannier2
| monCoffre[2] <- monPannier3
| monCoffre[3] <- monPannier4
|
| mon
Fin



Dans l'exemple ci dessus, j'ai mis dans le coffre 4 paniers, dont le premier comprend une bouteille d'eau, et le second, une bouteille de jus d'orange. Jusque là, vous me suivez?? ^^

Donc si on suit ce que l'on a vu au cours précédent :
monPannier1[0] = la bouteille d'eau
et
monCoffre[0] = monPannier1

on peut donc remplacer dans la première ligne monPannier1 par monCoffre[0], et nous obtenons :

monCoffre[0][0] = la bouteille d'eau

Vous venez de voir comment fonctionne un tableau à plusieurs dimensions. Cependant attention, j'ai déjà fait la remarque d'être rigoureux avec les index pour une dimension, je vous conseille de l'être encore plus pour les tableaux à multiple dimension.

Et oui, imaginez que dans un bâtiment, j'ai plusieurs caves, contenant plusieurs coffres, contenant plusieurs paniers, contenant plusieurs bouteilles... fiou, le casse tête
Hop, ça nous donnes :

monBatiment[0] = uneCave
uneCave[0] = unCoffre
unCoffre[0] = unPannier
unPannier[0] = uneBouteille de jus de citron vert

en réduisant cela, nous obtenons :
monBatiment[0][0][0][0] = une bouteille de jus de citron vert

en récapitulant les index :
le premier identifie une cave
le deuxième identifie un coffre
le troisième identifie un panier
le quatrième identifie une bouteille

Cependant rassurez vous, dans un programme, on a rarement plus de 3 Dimensions