6000 ressources graphiques et audios ont été ajouté à la bibliothèque de ressources. Le site a donc atteint la barre des 25000 ressources !
Tableaux : Partie 2
Il existe pas mal de fonction pour les tableaux afin de les manipuler. Nous allons voir quelques manipulations :
1) Effacer le contenu d'un tableau et le vérifier
Pour cela, nous aurons besoin de "clear" pour effacer le tableau et "empty?" pour vérifier.
La méthode "empty?" retourne un booléen : true si le tableau est vide.
2) Divers accès aux éléments.
Vous savez que pour accéder à un élement, on fait :
Voici d'autres méthodes :
tab[-1] permet de partir de la fin du tableau et vous l'avez compris, tab[-2] prend le deuxième élément à partir de la fin, soit l'avant dernier. "first" prend le premier élément du tableau et "last" le dernier.
"index" permet de faire l'effet inverse ... au lieu d'avoir l'élément grâce à sa position, vous avez sa position de l'élément dans le tableau.
Dans le premier affichage, on prend les 2 éléments à partir de la position 3 du tableau
Dans le second affichage, on prend les éléments des positions 3 à 4 inclus.
Voici un code identique à l'exemple ci-dessus :
Pour savoir si un élement est dans le tableau, on utilise "include?" qui renvoie un booléen.
3) Concaténation et opérations
a) Concaténation
?>
La concaténation de deux tableaux permettent de les fusionner :)
b) Opération
?>
Le "&" prend les éléments communs dans les deux tableaux.
Le "-" est le contraire de "&". Il ne prend que les éléments qui n'apparaissent qu'une fois dans l'un des deux tableaux.
Le "|" fusionne les deux tableaux, un peu comme la concaténation, mais il ne garde qu'un élément si celui ci se trouve deux fois dans les tableaux.
c) Comparaison
Vous connaissez la comparaison puisque c'est la même chose que les entiers :)
La méthode == permet de comparer exactement deux tableaux. Nous allons voir une autre méthode de comparaison :
?>
Comment ça fonctionne ? Le principe est simple, Ruby compare élement par élement entre deux tableaux. La méthode retourne 0 s'ils sont égaux, 1 si l'élément du tableau est plus grand que l'autre et -1 si l'élement est plus petit.
Ici, on a 6 affichages :
- Les élements de tab1 et tab2 sont identiques donc ça affiche 0
- Les deux premiers éléments de tab2 et tab4 sont les même, la méthode compare le troisième élément : 3 est plus grand que 2 donc tab2 est plus grand que tab4 donc ça affiche 1
- Dès le premier élément, tab4 est plus grand que tab5 puisque 1 est supérieur à -1 donc ça affiche 1
- C'est le cas contraire : tab5 est plus petit que tab4 donc ça affiche -1
- La comparaison se fait maintenant avec des lettres (ou caractère). La lettre "a" est plus petit que la lettre "b" donc tab3 est plus petit que tab6 : ça affiche -1
- Enfin pour le dernier affichage, on compare dès le début, un caractère avec un entier ... ça renvoit donc "nil"
4) Oter, insérer, supprimer, trier et inverser les éléments d'un tableau a) Oter et insérer
?>
"shift" ote le premier élément du tableau et décale les autres éléments vers la gauche. "unshift" est l'inverse de "shift", il insére un nouvel élément à la première position et décale les autres éléments vers la droite.
b) Supprimer
?>
"delete" permet de supprimer un élement. "delete_at" supprime l'élément selon son indice de position.
c) Trier et inverser
?>
"sort" permet de trier les éléments du tableau dans l'ordre croissant et "reverse" permet d'inverser l'ordre des éléments.
5) Savoir la taille d'un tableau
La taille est le nombre d'élement dans un tableau. Par exemple :
?>
Le tableau ci dessus a 7 éléments. En Ruby, vous avez deux fonctions pour cela :
- size
- length
?>
Les deux fonctions font la même chose. A vous de prendre celle qui vous plait le plus :)
6) Matrices : tableaux multi-dimensionnels
Un tableau multi-dimensionnel est tout simplement un tableau dans un tableau. En maths, on appelle ça une matrice.
?>
Voici la représentation en matrice :
Page vue 342 fois | Auteur : Samarium
RPG Creative version 4.5 ; Mai 2005 - Janvier 2009 ; Tous droits réservés. 0.142s
- Optimisé pour une résolution 1024*728