Basi degli array 2D
Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 10 di 56.
Un array 2D è un array i cui elementi sono a loro volta array. Ogni array interno rappresenta una riga in una griglia.
cinema = [
[true, true], # Riga 0
[false, true] # Riga 1
]Questa rappresenta una griglia 2×2, con due righe, ciascuna con due colonne.
Per creare una griglia 3×4 di numeri interi:
matrix = [
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]
]Puoi creare una griglia riempita con un valore predefinito usando Array.new due volte, una per le righe e una per le colonne:
grid = Array.new(3) { Array.new(4, 0) }
# 3 righe, 4 colonne, tutti zeriLa forma con blocco ({ Array.new(4, 0) }) è importante: crea un nuovo array interno per ogni riga. Senza di essa, ogni riga punterebbe allo stesso array.
Sfida
FacileLeggi due numeri interi (due righe di input): rows e cols. Crea un array 2D di quelle dimensioni, in cui ogni cella è uguale a row * cols + col + 1 (quindi la prima riga conta a partire da 1 e la griglia si riempie nell'ordine di lettura).
Stampa la griglia usando inspect sull'array esterno, su una riga.
Per l'input 2 seguito da 3, l'output è:
[[1, 2, 3], [4, 5, 6]]Provalo tu
rows = gets.to_i
cols = gets.to_i
# TODO: crea la griglia e stampala con inspect
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Panoramica dei metodi delle stringheInterpolazione di stringheIterare sulle stringheDividere e unireRiepilogo - Tessitore di stringhe4Blocchi, Proc e Lambda
Che cos’è un Block?do..end vs parentesi graffeLa keyword yieldParametri del BlockProc e LambdaRiepilogo - Iteratore personalizzato7Hash in Ruby - Parte 2
Hash.new con valori predefinitiIterare sugli hashHash annidatiUnire e trasformareRipasso - Contatore di frequenza10Progetto - Registri degli studenti
Panoramica del progettoAggiungere uno studente2Intervalli
Che cos'è un intervallo?Metodi degli intervalliIntervalli in Case / WhenRiepilogo - Esercitarsi con gli intervalli5La potenza di Enumerable
Select e RejectConcatenare MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRiepilogo - Pipeline di dati3Array bidimensionali
Basi degli array 2DAccesso agli elementi 2DIterare sugli array 2DPattern comuni con array 2DRiepilogo - Operazioni sulle matrici6Progetto - Gestore della biblioteca
Panoramica del progettoAggiungere un libroEsercitati da solo: Compilatore Ruby online