дошел до 8го урока, но так и не понял, как создать массив многомерный?
Ну ,то есть,например, мне нужно матрицу 5 на 5 в массив уложить. Как мне это сделать ?
И как будут с многомерными массивами работать всякие for in ?
Где об этом почитать ?
Алексей, просто вложите пять массивов (с пятью элементами каждый) в массив :)
matrix_five_on_five = [
[0,1,0,1,0],
[1,0,1,0,1],
[0,1,0,1,0],
[1,0,1,0,1],
[0,1,0,1,0]
]
В математике столбцы и строки матрицы обычно нумеруют с единицы, поэтому чтобы получить элемент A23
(элемент, стоящий на 2-й строке на 3-й позиции), нужно из каждого индекса отнять по единичке:
matrix_five_on_five[1][2]
Мы просто обращаемся ко второму элементу главного массива, а там — ещё один массив, вложыенный. Мы обращаемся к его 3-му элементу. Вот и всё ;)
так то да, но...
Вот мне нужна матрица. я еще не знаю, как она будет заполнена, но мне нужно туда складывать элементы в разные места. Как мне инициировать переменную?
Я пробовал что то типа вот такого...
string = []
matrix = []
matrix[1] << string
matrix[1][2] = 1
puts matrix[1][2].to_s
но результат работы = 0 но ожидалась, понятное дело единица.
В руби нет поддержки настоящих многомерных массивов. Но можно их имитировать с помощью массива массивов.
http://stackoverflow.com/questions/7014052/ruby-multidimensional-array
Твой пример просто с ошибками, вот так сработает:
string = []
matrix = []
matrix << string # добавляем в пустую матрицу первую строчку
matrix[0][2] = 1 # в матрице пока только 1 строка, нумерация идет с нуля!
puts matrix[0][2].to_s