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

أنماط المصفوفات ثنائية الأبعاد الشائعة

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

غالباً ما تظهر أنماط معينة عند التعامل مع المصفوفات ثنائية الأبعاد (2D arrays). يمكن أن يساعدك التعرف على هذه الأنماط في حل المشكلات بكفاءة أكبر. إليك بعض الأنماط الشائعة:

التنقل القطري (Diagonal Traversal)

الوصول إلى العناصر التي يتساوى فيها دليلا الصف والعمود (matrix[i][i]) يعطيك القطر الرئيسي (Main). بالنسبة للقطر المعاكس (Anti)، فإن مجموع دليلي الصف والعمود يساوي حجم المصفوفة ناقص 1 (matrix[i][size - 1 - i]).

على سبيل المثال:

1  2  3
4  5  6
7  8  9

المرور عبر القطر الرئيسي (matrix[i][i]): 1, 5, 9
المرور عبر القطر المعاكس (matrix[i][size - 1 - i]): 3, 5, 7

Border Traversal

الانتقال عبر عناصر الإطار (border)، تقوم بتثبيت أحد الفهارس (0 أو size - 1) مع التكرار على الفهرس الآخر.

للوصول إلى الحد العلوي (Top border)، يمكنك التكرار عبر الأعمدة مع تثبيت مؤشر الصف عند 0.

على سبيل المثال:

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

عناصر الحدود: 1، 2، 3، 4، 8، 12، 11، 10، 9، 5 (الجميع باستثناء 6 و 7)

challenge icon

التحدي

سهل

قم بإنشاء دالة باسم printPatterns تأخذ مصفوفة مربعة ثنائية الأبعاد من الأعداد الصحيحة (matrix) كمدخلات وتقوم بطباعة الأنماط التالية:

  1. Main Diagonal: طباعة جميع العناصر التي يتساوى فيها فهرس الصف مع فهرس العمود.
  2. Anti-Diagonal: طباعة جميع العناصر التي يكون فيها مجموع فهرسي الصف والعمود مساوياً لحجم الـ matrix ناقص 1.
  3. Borders: طباعة عناصر الحدود الـ Top، و Bottom، و Left، و Right للـ matrix.

يجب أن يبدو المخرجات بالشكل التالي:

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

جرّب بنفسك

// اكتب الكود الخاص بك داخل الـ class فقط. لا تكتب main() أو أي كود خارج هذا الـ class.
class PrintPatterns {
    public static void printPatterns(int[][] matrix) {
        // اكتب كودك هنا
    }
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow