Menu
Coddy logo textTech

Acceso a elementos 2D

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 11 de 56.

Para leer o actualizar una sola celda en un array bidimensional, encadena dos búsquedas de índice: la primera selecciona la fila y la segunda selecciona la columna.

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

puts matrix[0][0]   # 10  (superior izquierda)
puts matrix[1][2]   # 60  (fila 1, columna 2)
puts matrix[2][0]   # 70  (inferior izquierda)

Actualizar una celda utiliza la misma sintaxis en el lado izquierdo:

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

Dos consultas de forma útiles:

puts matrix.length         # 3 (número de filas)
puts matrix[0].length      # 3 (columnas en la fila 0)

Los índices comienzan en 0 y llegan hasta length - 1. Ir más allá del final devuelve nil en lugar de generar un error.

challenge icon

Desafío

Principiante

Se proporciona el array bidimensional matrix. Lee tres números enteros (tres líneas): r1, c1, luego v. Después:

  1. Imprime el valor en matrix[r1][c1]
  2. Establece matrix[r1][c1] = v
  3. Imprime todo el matrix actualizado usando inspect

Para la entrada 1 / 2 / 99, la salida es:

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

Hoja de referencia

Accede y actualiza celdas en un arreglo 2D usando índices encadenados [row][col]:

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

puts matrix[1][2]    # 60
matrix[1][2] = 99    # actualizar celda
puts matrix.inspect  # [[10, 20, 30], [40, 50, 99]]

Consultas de dimensiones:

matrix.length      # número de filas
matrix[0].length   # número de columnas en la fila 0

Los índices comienzan en 0; acceder fuera de los límites devuelve nil.

Pruébalo tú mismo

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

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

# TODO: imprimir matrix[r1][c1], asignar v, luego imprimir toda la matriz
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo