Menu
Coddy logo textTech

Yaygın 2D Dizi Desenleri

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 8 / 59.

2D dizilerle çalışırken genellikle belirli desenler ortaya çıkar. Bu desenleri tanımak, sorunları daha verimli bir şekilde çözmenize yardımcı olabilir. İşte birkaç yaygın desen:

Diagonal Gezinim (Diagonal Traversal)

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

Örneğin:

1  2  3
4  5  6
7  8  9

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

Border Traversal

Kenar elemanlarını dolaşmak için diğer indeks üzerinde yineleme yaparken bir indeksi sabit (0 veya size - 1) tutarsınız.

Üst kenara erişmek için, satır indeksini 0'da sabit tutarak sütunlar üzerinde gezinirsiniz.

Örneğin:

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

kenar elemanları: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (6 ve 7 hariç hepsi)

challenge icon

Görev

Kolay

Girdi olarak kare şeklinde 2 boyutlu bir tamsayı dizisi (matrix) alan ve aşağıdaki desenleri yazdıran printPatterns adında bir metot oluşturun:

  1. Main Diagonal: Satır indeksinin sütun indeksine eşit olduğu tüm elemanları yazdırın.
  2. Anti-Diagonal: Satır ve sütun indekslerinin toplamının matris boyutunun 1 eksiğine eşit olduğu tüm elemanları yazdırın.
  3. Borders: Matrisin üst, alt, sol ve sağ kenarlarındaki (border) elemanları 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

// Kodunuzu yalnızca sınıfın içine yazın. main() veya bu sınıfın dışında herhangi bir kod yazmayın.
class PrintPatterns {
    public static void printPatterns(int[][] matrix) {
        // Kodunuzu buraya yazı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 & Akış bölümündeki tüm dersler