Menu
Coddy logo textTech

3D Diziler ve Ötesi

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

2B diziler (dizi dizileri) oluşturabildiğiniz gibi, 3B diziler (dizi dizilerinin dizileri), 4B diziler ve daha fazlasını da oluşturabilirsiniz. Bunlara çok boyutlu diziler denir.

3B bir dizi, üst üste yığılmış ve küp benzeri bir yapı oluşturan 2B diziler koleksiyonu olarak görselleştirilebilir. 3B bir dizideki her öğeye üç dizin kullanılarak erişilir: biri derinlik (hangi 2B dizi olduğu), biri satır ve biri sütun için.

Java'da 3B bir diziyi nasıl bildirip başlatacağınız aşağıda açıklanmıştır:

data_type[][][] array_name = new data_type[depth][rows][columns];
  • data_type: Dizinin tutacağı öğelerin türü.
  • array_name: Dizinin adı.
  • depth: 2B dizilerin sayısı (derinlik).
  • rows: Her 2B dizideki satır sayısı.
  • columns: Her 2B dizideki sütun sayısı.

Örneğin, boyutları 2x3x4 olan 3B bir tamsayı dizisi oluşturmak için şunu yazarsınız:

int[][][] cube = new int[2][3][4];

3B diziyi doğrudan da başlatabilirsiniz:

int[][][] cube = {
    {
        {1, 2, 3, 4},
        {5, 6, 7, 8},
        {9, 10, 11, 12}
    },
    {
        {13, 14, 15, 16},
        {17, 18, 19, 20},
        {21, 22, 23, 24}
    }
};
challenge icon

Görev

Kolay

depth, rows ve cols olmak üzere üç tamsayı bağımsız değişkeni alan bir program yazın. Belirtilen boyutlara sahip bir tamsayı 3D dizisi oluşturmalı ve dizinin her elemanını derinlik, satır ve sütun indislerinin (1'den başlayarak) çarpımıyla başlatmalıdır.

Örneğin, [d][r][c] konumundaki eleman (d + 1) * (r + 1) * (c + 1) değerine sahip olmalıdır.

Son olarak, iç içe döngüler kullanarak elde edilen 3D diziyi konsola yazdırın. Çıktı şu şekilde görünmelidir:

Depth 0:
1 2 3 4 
2 4 6 8 
3 6 9 12 
Depth 1:
2 4 6 8 
4 8 12 16 
6 12 18 24

Kendin dene

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int depth = scanner.nextInt();
        int rows = scanner.nextInt();
        int cols = scanner.nextInt();

        int[][][] array3D = new int[depth][rows][cols];
        // Kodunuzu aşağıya yazın

        // 3D diziyi yazdır
        for (int d = 0; d < depth; d++) {
            System.out.println("Depth " + d + ":");
            for (int r = 0; r < rows; r++) {
                for (int c = 0; c < cols; c++) {
                    System.out.print(array3D[d][r][c] + " ");
                }
                System.out.println();
            }
        }
    }
}
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

Kendi başına pratik yap: Online Java derleyicisi