Menu
Coddy logo textTech

Доступ к элементам двумерного массива

Часть раздела Логика и управление потоком путешествия по Ruby на Coddy. Урок 11 из 56.

Чтобы прочитать или обновить отдельную ячейку (cell) в двумерном массиве, объедините два обращения по индексу: первое выбирает row, второе — column.

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

puts matrix[0][0]   # 10  (верхний левый)
puts matrix[1][2]   # 60  (строка 1, столбец 2)
puts matrix[2][0]   # 70  (нижний левый)

Обновление cell использует тот же синтаксис на стороне left:

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

Два полезных запроса формы:

puts matrix.length         # 3 (количество строк)
puts matrix[0].length      # 3 (столбцы в строке 0)

Индексы начинаются с 0 и доходят до length - 1. Выход за конец возвращает nil, а не вызывает ошибку.

challenge icon

Задание

Новичок

Дан двумерный массив matrix. Считайте три целых числа (три строки): r1, c1, затем v. Затем:

  1. Выведите значение в matrix[r1][c1]
  2. Установите matrix[r1][c1] = v
  3. Выведите весь обновлённый matrix с помощью inspect

Для ввода 1 / 2 / 99 вывод будет таким:

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

Попробуйте сами

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

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

# TODO: вывести matrix[r1][c1], присвоить v, затем вывести всю матрицу
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Ruby