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

Kopya kağıdı

Yaygın 2B dizi gezinme desenleri:

Diyagonal Gezinme

Ana diyagonal: matrix[i][i] (satır indeksi sütun indeksine eşittir)

Ters diyagonal: matrix[i][size - 1 - i] (satır ve sütun indekslerinin toplamı size - 1'e eşittir)

1  2  3
4  5  6
7  8  9

Ana diyagonal: 1, 5, 9
Ters diyagonal: 3, 5, 7

Kenar Gezinme

Diğeri üzerinde döngü kurarken bir indeksi sabit tutun (0 veya size - 1):

  • Üst kenar: satır indeksi = 0, sütunları gez
  • Alt kenar: satır indeksi = size - 1, sütunları gez
  • Sol kenar: sütun indeksi = 0, satırları gez
  • Sağ kenar: sütun indeksi = size - 1, satırları gez

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