Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المصفوفات ثلاثية الأبعاد وما بعدها

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 7 من 59.

تماماً كما يمكنك إنشاء مصفوفات ثنائية الأبعاد 2D (مصفوفات من المصفوفات)، يمكنك إنشاء مصفوفات ثلاثية الأبعاد 3D (مصفوفات من مصفوفات من المصفوفات)، ومصفوفات رباعية الأبعاد 4D، وهكذا. تُسمى هذه المصفوفات بالمصفوفات متعددة الأبعاد.

يمكن تصور المصفوفة ثلاثية الأبعاد كمجموعة من المصفوفات ثنائية الأبعاد المرتبة فوق بعضها البعض، مما يشكل هيكلاً يشبه المكعب. يتم الوصول إلى كل عنصر في المصفوفة ثلاثية الأبعاد باستخدام ثلاثة فهارس: واحد للعمق (أي مصفوفة ثنائية الأبعاد)، وواحد للصف، وواحد للعمود.

إليك كيفية التصريح عن مصفوفة ثلاثية الأبعاد وتهيئتها في Java:

data_type[][][] array_name = new data_type[depth][rows][columns];
  • data_type: نوع العناصر التي ستحتوي عليها المصفوفة.
  • array_name: اسم المصفوفة.
  • depth: عدد المصفوفات ثنائية الأبعاد (العمق).
  • rows: عدد الصفوف في كل مصفوفة ثنائية الأبعاد.
  • columns: عدد الأعمدة في كل مصفوفة ثنائية الأبعاد.

على سبيل المثال، لإنشاء مصفوفة ثلاثية الأبعاد من الأعداد الصحيحة بأبعاد 2x3x4، عليك كتابة ما يلي:

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

يمكنك أيضاً تهيئة مصفوفة ثلاثية الأبعاد مباشرةً:

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

التحدي

سهل

اكتب برنامجاً يستقبل ثلاث وسائط صحيحة: depth، و rows، و cols. يجب أن يقوم بإنشاء مصفوفة ثلاثية الأبعاد (3D array) من الأعداد الصحيحة بالأبعاد المحددة، وتهيئة كل عنصر في المصفوفة بحاصل ضرب فهارس العمق والصف والعمود الخاصة به (بدءاً من 1).

على سبيل المثال، العنصر الموجود في [d][r][c] يجب أن تكون قيمته (d + 1) * (r + 1) * (c + 1).

أخيراً، قم بطباعة المصفوفة ثلاثية الأبعاد الناتجة إلى وحدة التحكم (console) باستخدام حلقات متداخلة. يجب أن يظهر المخرج بهذا الشكل:

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

ورقة مرجعية

المصفوفات ثلاثية الأبعاد هي مصفوفات من مصفوفات من مصفوفات، يتم تصورها كبنى تشبه المكعب مع العمق والصفوف والأعمدة.

التصريح والتهيئة:

data_type[][][] array_name = new data_type[depth][rows][columns];

مثال:

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

التهيئة المباشرة:

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}
    }
};

يتم الوصول إلى العناصر باستخدام ثلاثة فهارس: array[depth][row][column]

جرّب بنفسك

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];
        // اكتب الكود الخاص بك أدناه

        // طباعة المصفوفة ثلاثية الأبعاد
        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 iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow