❤ 0 Sommaire
Ruby
Les variables
>> Les tableaux <<
Les booléens et les calculs logiques
Structure de if
Structure de case
Boucles loop do et while
Boucle for
Fonctions et procédures
POO - Classes et objets
RGSS
Débuter avec le RGSS
Module Input
Bitmap, Color, Sprite
Structure de base des classes Scene et Window
[Ruby] Cours n°2 : Les tableaux
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 pannier comportant plusieur bouteille de n'importe quel type (liquide, solide..).
La seule diférence c'est que l'on a un nom pour le pannier, mais pas pour les bouteilles, elles sont dans le pannier, dans un ordre stricte qui ne bougera pas, donc pas besoin de connaitre leur nom, si on connait le nom du pannier et de la position de la bouteille dans ce pannier, c'est emplement suffisant.
On peut avoir autant de bouteilles que l'on veut dans ce pannier.
Exemple, je prend mon pannier de bouteille vide qui contiennent des liquides, on va les remplir.
En Algorythme :
Citation: 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 premiere bouteille du pannier 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 pannier, c'est comme si on me disait, va prendre une bouteille, hop, j'attrape directement la premiere, 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 :
1
2
3
4
5
| def additionner
tabReel = [12, 34, -24, 0.25, -3.75] # là, le tableau est typé Reel
monResultat = tabReel[1] + tabReel[4]
end |
monResultat est égale à 30.25
Je le répete 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 pannier, contenant des bouteilles. Mais maintenant supposez, que dans un coffre, j'ai plusieur panniers de même dimension (contenant le même nombre de bouteille), ce qui en algorithmer aurait cette tête là :
Citation: 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 panniers, 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 à plusieur dimension. 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 tableaus à multiple dimension.
Et oui, imaginez que dans un batiment, j'ai plusieurs caves, contenant plusieurs coffres, contenant plusieurs panniers, 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 reduisant 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 deuxieme identifie un coffre
le troisièmen identifie un pannier
le quatrième identifie une bouteille
Cependant rassurez vous, dans un programme, on a rarement plus de 3 Dimensions
Source
- Tonyryu, "[Ruby] Cours n°2 : Les tableaux", TonyryuDev, écrit le 2 août 2013 [consulté le 4 juillet 2021], https://web.archive.org/web/20181202044033/http://www.tonyryudev.com/joomla3/index.php/menu-mes-developpements/menu-cours-ruby-rgss/3-ruby-cours-n-2-les-tableaux
Ce tutoriel a été posté avec l'accord de son auteur.
|