Menu
Coddy logo textTech

Bases des tableaux 2D

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

Un tableau 2D est un tableau dont les éléments sont eux-mêmes des tableaux. Chaque tableau interne représente une ligne dans une grille.

cinema = [
  [true,  true],   # Ligne 0
  [false, true]    # Ligne 1
]

Cela représente une grille 2×2, deux lignes, chacune avec deux colonnes.

Pour créer une grille d'entiers 3×4 :

matrix = [
  [ 1,  2,  3,  4],
  [ 5,  6,  7,  8],
  [ 9, 10, 11, 12]
]

Vous pouvez construire une grille remplie d'une valeur par défaut en utilisant Array.new deux fois, une fois pour les lignes, une fois pour les colonnes :

grid = Array.new(3) { Array.new(4, 0) }
# 3 lignes, 4 colonnes, tous des zéros

La forme de bloc ({ Array.new(4, 0) }) est importante, elle crée un nouveau tableau interne pour chaque ligne. Sans cela, chaque ligne pointerait vers le même tableau.

challenge icon

Défi

Facile

Lisez deux entiers (deux lignes d'entrée) : rows et cols. Construisez un tableau 2D de cette taille où chaque cellule est égale à row * cols + col + 1 (ainsi la première ligne compte à partir de 1, et la grille se remplit dans l'ordre de lecture).

Affichez la grille en utilisant inspect sur le tableau extérieur, sur une seule ligne.

Pour l'entrée 2 puis 3, la sortie est :

[[1, 2, 3], [4, 5, 6]]

Aide-mémoire

Les tableaux 2D sont des tableaux de tableaux, où chaque tableau interne est une ligne :

matrix = [
  [1, 2, 3],
  [4, 5, 6]
]

Construisez une grille avec une valeur par défaut en utilisant Array.new avec un bloc (le bloc garantit que chaque ligne est un tableau distinct) :

grid = Array.new(3) { Array.new(4, 0) }
# 3 lignes, 4 colonnes, tous des zéros

Essayez vous-même

rows = gets.to_i
cols = gets.to_i

# TODO : construire la grille et l'afficher avec inspect
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