Menu
Coddy logo textTech

Accéder aux éléments 2D

Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 11 sur 56.

Pour lire ou mettre à jour une seule cellule dans un tableau 2D, enchaînez deux recherches d'index : la première choisit la ligne, la seconde choisit la colonne.

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

puts matrix[0][0]   # 10  (en haut à gauche)
puts matrix[1][2]   # 60  (ligne 1, colonne 2)
puts matrix[2][0]   # 70  (en bas à gauche)

La mise à jour d'une cellule utilise la même syntaxe sur le côté gauche :

matrix[0][1] = 99
puts matrix[0].inspect   # [10, 99, 30]

Deux requêtes de forme utiles :

puts matrix.length         # 3 (nombre de lignes)
puts matrix[0].length      # 3 (colonnes dans la ligne 0)

Les index commencent à 0 et vont jusqu'à length - 1. Dépasser la fin retourne nil plutôt que de lever une erreur.

challenge icon

Défi

Débutant

Le tableau 2D matrix est fourni. Lisez trois entiers (trois lignes) : r1, c1, puis v. Ensuite :

  1. Affichez la valeur à matrix[r1][c1]
  2. Définissez matrix[r1][c1] = v
  3. Affichez l'intégralité de matrix mis à jour en utilisant inspect

Pour l'entrée 1 / 2 / 99, la sortie est :

60
[[10, 20, 30], [40, 50, 99], [70, 80, 90]]

Aide-mémoire

Accédez aux cellules d'un tableau 2D et mettez-les à jour en utilisant des index chaînés [row][col] :

matrix = [
  [10, 20, 30],
  [40, 50, 60]
]

puts matrix[1][2]    # 60
matrix[1][2] = 99    # mettre à jour la cellule
puts matrix.inspect  # [[10, 20, 30], [40, 50, 99]]

Requêtes sur la forme :

matrix.length      # nombre de lignes
matrix[0].length   # nombre de colonnes dans la ligne 0

Les index commencent à 0 ; l'accès hors limites retourne nil.

Essayez vous-même

matrix = [
  [10, 20, 30],
  [40, 50, 60],
  [70, 80, 90]
]

r1 = gets.to_i
c1 = gets.to_i
v  = gets.to_i

# TODO: afficher matrix[r1][c1], assigner v, puis afficher toute la matrice
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux