Dernières news

- 25000 ressources
- News de Créative : Décemb...
- VX à fond !
- 6 Jeux amateurs à tester ...
- News de Créative : Octobr...
- Action Game Maker
- News de Créative : Septem...

Créations
+ de détails !
Infos

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.

Code Rubytab = [2, 6, 4, 1, 7] # Tableau à 5 éléments
tab.clear # Efface le tout

if tab.empty? # Si le tableau à 0 élément
        puts "Le tableau est vide"
end

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 :

Code Rubytab = ['or', 'ni', 'car']
puts tab[0] # Affiche "or"

Voici d'autres méthodes :

Code Rubytab = ['or', 'ni', 'car']
puts tab[-1] # Affiche "car"
puts tab[-2] # Affiche "ni"
puts tab.first # Affiche "or"
puts tab.last # Affiche "car"

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.

Code Rubytab = ['or', 'ni', 'car']
puts tab.index("ni") # Affiche 1

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

Code Rubytab = ['mais', 'ou', 'et', 'donc', 'or', 'ni', 'car']
puts tab[3,2]  # Affiche "donc or"
puts tab[3..4] # Affiche "donc or" aussi

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 :

Code Rubytab = ['mais', 'ou', 'et', 'donc', 'or', 'ni', 'car']
puts tab.slice(3,2)  # Affiche "donc or"
puts tab.slice(3..4) # Affiche "donc or" aussi

Pour savoir si un élement est dans le tableau, on utilise "include?" qui renvoie un booléen.

Code Rubytab = ['mais', 'ou', 'et', 'donc', 'or', 'ni', 'car']
 
element = gets.chomp
 
if tab.include?(element)
        puts "Cet element se trouve dans le tableau"
else
    puts "Cet element ne se trouve pas dans le tableau"
end

3) Concaténation et opérations

a) Concaténation

Code Rubytab1 = ["a", "b", "c", "d"]
tab2 = ["e", "f", "g"]

puts tab1 + tab2 # Affiche : "a b c d e f g"
?>

La concaténation de deux tableaux permettent de les fusionner :)

b) Opération

Code Rubytab1 = ['or', 'ni', 'car', 'et']
tab2 =  ['mais', 'ou', 'et', 'donc', 'or']

puts tab1 & tab2 # Affiche "or et"
puts tab1 - tab2 # Affiche "ni car"
puts tab2 - tab1 # Affiche "mais ou donc"
puts tab1 | tab2 # Affiche "or ni car et mais ou donc"
?>

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 :

Code Rubytab1 = [ 1, 2, 3]
tab2 =[ 1, 2, 3 ]
tab3 =[ "a", 2, 3 ]
tab4 = [ 1, 2, 2 ]
tab5 = [ -1, 2, 3, 7, 99]
tab6 =[ "b", 2, 3]


puts tab1 <=> tab2 # Affiche 0
puts tab2 <=> tab4 # Affiche 1
puts tab4 <=> tab5 # Affiche 1
puts tab5 <=> tab4 # Affiche -1
puts tab3 <=> tab6 # Affiche -1
puts tab2 <=> tab3 # Affiche nil
 
?>

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

Code Rubytab = ['or', 'ni', 'car']

tab.shift
puts tab # Affiche "ni car"

tab = ['or', 'ni', 'car']

tab.unshift "mais"
puts tab # Affiche "mais or ni car"
 
?>

"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

Code Rubytab = ['or', 'ni', 'car']

tab.delete "ni"
puts tab  # Affiche "or car"

tab = ['or', 'ni', 'car']

tab.delete_at(1)
puts tab  # Affiche "or car"
 
?>

"delete" permet de supprimer un élement. "delete_at" supprime l'élément selon son indice de position.

c) Trier et inverser

Code Rubytab = [ 1, 3, 7, 9, 8, 4, 1]
puts tab.sort    # Affiche "1 1 3 4 7 8 9"
puts tab.reverse # Affiche "1 4 8 9 7 3 1"
?>

"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 :

Code Rubytab = [ 1, 3, 7, 9, 8, 4, 1] # 7 éléments
?>

Le tableau ci dessus a 7 éléments. En Ruby, vous avez deux fonctions pour cela : - size
- length

Code Rubytab = [ 1, 3, 7, 9, 8, 4, 1]
puts tab.size   # Affiche "7"
puts tab.length # Affiche "7" aussi
?>

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.

Code Rubytab = [[1, 2, 5], [4, 5, 1], [1, 0, 0]]
?>

Voici la représentation en matrice :


Page vue 342 fois | Auteur : Samarium