Menu
Coddy logo textTech

2D Elemanlara Erişim

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 11 / 56.

2 boyutlu bir dizideki tek bir hücreyi okumak veya güncellemek için iki dizin aramasını zincirleyin: birincisi satırı seçer, ikincisi sütunu seçer.

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

puts matrix[0][0]   # 10  (sol üst)
puts matrix[1][2]   # 60  (satır 1, sütun 2)
puts matrix[2][0]   # 70  (sol alt)

Bir hücreyi güncellemek, sol tarafta aynı sözdizimini kullanır:

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

İki yararlı şekil sorgusu:

puts matrix.length         # 3 (satır sayısı)
puts matrix[0].length      # 3 (0. satırdaki sütunlar)

İndeksler 0'dan başlar ve length - 1 değerine kadar gider. Sınırı aşmak, bir hata oluşturmak yerine nil döndürür.

challenge icon

Görev

Başlangıç

matrix adlı 2D dizi verilmiştir. Üç tam sayı okuyun (üç satır): r1, c1 ve ardından v. Ardından:

  1. matrix[r1][c1] konumundaki değeri yazdırın
  2. matrix[r1][c1] = v atamasını yapın
  3. Güncellenmiş tüm matrix yapısını inspect kullanarak yazdırın

1 / 2 / 99 girdisi için çıktı şöyledir:

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

Kopya kağıdı

Zincirlenmiş indeksleri [row][col] kullanarak bir 2D dizideki hücrelere erişin ve güncelleyin:

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

puts matrix[1][2]    # 60
matrix[1][2] = 99    # hücreyi güncelle
puts matrix.inspect  # [[10, 20, 30], [40, 50, 99]]

Şekil sorguları:

matrix.length      # satır sayısı
matrix[0].length   # 0. satırdaki sütun sayısı

İndeksler 0'dan başlar; sınırların dışına erişim nil döndürür.

Kendin dene

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

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

# YAPILACAK: matrix[r1][c1] değerini yazdırın, v değerini atayın, ardından tüm matrisi yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler