2D Dizi Temelleri
Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 10 / 56.
2D (iki boyutlu) dizi, elemanları kendileri de dizi olan bir dizidir. Her bir iç dizi, bir ızgaradaki satırı temsil eder.
cinema = [
[true, true], # Satır 0
[false, true] # Satır 1
]Bu, her biri iki sütunlu iki satırdan oluşan 2×2'lik bir ızgarayı temsil eder.
Tam sayılardan oluşan 3×4'lük bir ızgara oluşturmak için:
matrix = [
[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]
]Array.new yöntemini biri satırlar, diğeri sütunlar için olmak üzere iki kez kullanarak varsayılan bir değerle doldurulmuş bir ızgara oluşturabilirsiniz:
grid = Array.new(3) { Array.new(4, 0) }
# 3 satır, 4 sütun, tamamı sıfırBlok formu ({ Array.new(4, 0) }) önemlidir, her satır için yeni bir iç dizi oluşturur. Bu olmadan, her satır aynı diziyi işaret ederdi.
Görev
Kolayİki tam sayı okuyun (iki satır girdi): rows ve cols. Her hücrenin row * cols + col + 1 değerine eşit olduğu bu boyutta bir 2D dizi oluşturun (böylece ilk satır 1'den başlar ve ızgara okuma sırasına göre dolar).
Dış dizi üzerinde inspect kullanarak ızgarayı tek bir satırda yazdırın.
2 ve ardından 3 girdisi için çıktı şöyledir:
[[1, 2, 3], [4, 5, 6]]Kopya kağıdı
2D diziler, her iç dizinin bir satır olduğu dizilerin dizileridir:
matrix = [
[1, 2, 3],
[4, 5, 6]
]Bir blok ile Array.new kullanarak varsayılan bir değerle bir ızgara oluşturun (blok, her satırın ayrı bir dizi olmasını sağlar):
grid = Array.new(3) { Array.new(4, 0) }
# 3 satır, 4 sütun, tamamı sıfırKendin dene
rows = gets.to_i
cols = gets.to_i
# YAPILACAK: ızgarayı oluşturun ve inspect ile yazdırın
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
1Derinlemesine Stringler
String Metotlarına Genel BakışString InterpolationStringler Üzerinde GezinmeSplit ve JoinÖzet - String Weaver4Bloklar, Procs ve Lambdalar
Blok Nedir?do..end ve Süslü Parantezleryield Anahtar KelimesiBlok ParametreleriProcs ve LambdalarÖzet - Özel İteratör7Hashes Bölüm 2
Varsayılan Değerlerle Hash.newHash Yapıları Üzerinde Yinelemeİç İçe Hash YapılarıBirleştirme ve DönüştürmeÖzet - Frekans Sayacı10Proje - Öğrenci Kayıtları
Projeye Genel BakışÖğrenci Ekle5Enumerable Gücü
Select ve RejectMap ZincirlemeReduce / Injectcount, all?, any?, none?group_by ve partitionsort_by, min_by, max_byÖzet - Data Pipeline8İleri Seviye Karar Yapıları
Sınıflar ve Regex ile CaseÇok Değerli whenTernary OperatörüSatır İçi if / unlessÖzet - Not Sınıflandırıcı32D Diziler
2D Dizi Temelleri2D Elemanlara Erişim2D Diziler Üzerinde YinelemeYaygın 2D KalıplarÖzet - Matris İşlemleri6Proje - Kütüphane Yöneticisi
Projeye Genel BakışKitap Ekle