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

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

جزء من قسم المنطق وتدفق التنفيذ في رحلة Java على Coddy. الدرس 7 من 59.

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

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

إليك كيفية التصريح عن وتهيئة مصفوفة ثلاثية الأبعاد في 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. يجب أن ينشئ مصفوفة ثلاثية الأبعاد من الأعداد الصحيحة بالأبعاد المحددة، ويهيّئ كل عنصر في المصفوفة بحاصل ضرب مؤشرات العمق والصف والعمود الخاصة به (بدءًا من 1).

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

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

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

جرّب بنفسك

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اختبر نفسك

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

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Java عبر الإنترنت