Menu
Coddy logo textTech

Yaygın 2D Dizi Desenleri

Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 13 / 65.

2D dizilerle çalışırken belirli kalıplar sıklıkla karşımıza çıkar. Bu kalıpları tanımak, problemleri daha verimli bir şekilde çözmenize yardımcı olabilir. İşte birkaç yaygın kalıp:

Köşegen Geçişi

Satır dizininin sütun dizinine eşit olduğu elemanlara erişmek (matrix[i][i]) size ana köşegeni verir. Ters köşegen için, satır ve sütun dizinlerinin toplamı dizinin boyutunun 1 eksiğine eşittir (matrix[i][size - 1 - i]).

Örneğin:

1  2  3
4  5  6
7  8  9

Ana köşegen (matrix[i][i]) boyunca gezinme: 1, 5, 9
Ters köşegen (matrix[i][size - 1 - i]) boyunca gezinme: 3, 5, 7

Kenar Gezinme

Kenar elemanlarını gezmek için, diğeri üzerinde iterasyon yaparken bir indeksi sabit tutarsınız (0 veya size - 1).

Üst kenara erişmek için, satır indeksi 0'da sabitlenmiş şekilde sütunlar üzerinde döngü kurarsınız.

Örneğin:

1  2  3  4
5  6  7  8
9 10 11 12

kenar öğeleri: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (6 ve 7 hariç tümü)

challenge icon

Görev

Kolay

Girdi olarak bir kare 2B tamsayı dizisi (printPatterns) alan ve aşağıdaki desenleri yazdıran matrix adlı bir işlev oluşturun:

  1. Ana Köşegen: Satır indeksinin sütun indeksine eşit olduğu tüm öğeleri yazdırın.
  2. Karşı Köşegen: Satır ve sütun indekslerinin toplamının matrisin boyutundan 1 eksik olduğu tüm öğeleri yazdırın.
  3. Kenarlar: Matrisin üst, alt, sol ve sağ kenarlarındaki öğeleri yazdırın.

Çıktı şu şekilde görünmelidir:

Main Diagonal: 1 6 11 16 
Anti-Diagonal: 4 7 10 13 
Top Border: 1 2 3 4 
Bottom Border: 13 14 15 16 
Left Border: 1 5 9 13 
Right Border: 4 8 12 16

Kendin dene

function printPatterns(matrix) {
    let mainDiagonal = []
    // YAPILACAK: Uygula
    console.log("Main Diagonal:", mainDiagonal.join(" "));
    
    let antiDiagonal = [];
    // YAPILACAK: Uygula
    console.log("Anti-Diagonal:", antiDiagonal.join(" "));
    
    let topBorder = [];
    // YAPILACAK: Uygula
    console.log("Top Border:", topBorder.join(" "));
    
    let bottomBorder = [];
    // YAPILACAK: Uygula
    console.log("Bottom Border:", bottomBorder.join(" "));
    
    let leftBorder = [];
    // YAPILACAK: Uygula
    console.log("Left Border:", leftBorder.join(" "));
    
    let rightBorder = [];
    // YAPILACAK: Uygula
    console.log("Right Border:", rightBorder.join(" "));
}
// Fonksiyon dışına hiçbir şey yazmayı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

Kendi başına pratik yap: Online JavaScript derleyicisi