Menu
Coddy logo textTech

Acessando elementos 2D

Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy. Lição 11 de 56.

Para ler ou atualizar uma única célula em um array 2D, encadeie duas consultas de índice: a primeira seleciona a linha, a segunda seleciona a coluna.

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

puts matrix[0][0]   # 10  (canto superior esquerdo)
puts matrix[1][2]   # 60  (linha 1, coluna 2)
puts matrix[2][0]   # 70  (canto inferior esquerdo)

Atualizar uma célula usa a mesma sintaxe no lado esquerdo:

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

Duas consultas úteis sobre dimensões:

puts matrix.length         # 3 (número de linhas)
puts matrix[0].length      # 3 (colunas na linha 0)

Os índices começam em 0 e vão até length - 1. Ultrapassar o final retorna nil em vez de gerar um erro.

challenge icon

Desafio

Iniciante

A matriz 2D matrix é fornecida. Leia três inteiros (três linhas): r1, c1 e, em seguida, v. Depois:

  1. Imprima o valor em matrix[r1][c1]
  2. Defina matrix[r1][c1] = v
  3. Imprima a matrix inteira atualizada usando inspect

Para a entrada 1 / 2 / 99, a saída é:

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

Experimente você mesmo

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

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

# TODO: imprima matrix[r1][c1], atribua v, depois imprima a matriz inteira
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de Ruby online