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 tam sayılardan oluşan kare bir 2D dizi (matrix) alan ve aşağıdaki desenleri yazdıran printPatterns adında bir fonksiyon oluşturun:

  1. Main Diagonal: Satır dizininin sütun dizinine eşit olduğu tüm öğeleri yazdırın.
  2. Anti-Diagonal: Satır ve sütun dizinlerinin toplamının matris boyutunun 1 eksiğine eşit olduğu tüm öğeleri yazdırın.
  3. Borders: 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