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érosLa 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.
Défi
FacileLisez 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]]Essayez vous-même
rows = gets.to_i
cols = gets.to_i
# TODO : construire la grille et l'afficher avec inspect
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
1Les chaînes de caractères en profondeur
Aperçu des méthodes de chaînesInterpolation de chaînesParcourir les chaînesSplit et JoinRécapitulatif - Tisseur de chaînes4Blocs, Procs et Lambdas
Qu'est-ce qu'un bloc ?do..end ou accoladesLe mot-clé yieldParamètres de blocProcs et LambdasRécapitulatif - Itérateur personnalisé7Hashes, 2e partie
Hash.new avec valeurs par défautParcourir les hashesHashes imbriquésFusionner et transformerRécapitulatif - Compteur de fréquences10Projet - Dossiers des étudiants
Présentation du projetAjouter un étudiant2Plages
Qu’est-ce qu’une plage ?Méthodes des plagesPlages dans Case / WhenRécapitulatif - Exercices sur les plages5Puissance des Enumerable
Select et RejectChaînage de MapReduce / Injectcount, all?, any?, none?group_by et partitionsort_by, min_by, max_byRécapitulatif - Pipeline de données3Tableaux 2D
Bases des tableaux 2DAccéder aux éléments 2DParcourir les tableaux 2DMotifs courants en 2DRécapitulatif - Opérations sur les matrices6Projet - Gestionnaire de bibliothèque
Vue d’ensemble du projetAjouter un livreEntraînez-vous par vous-même : Compilateur Ruby en ligne