الوصول إلى عناصر المصفوفة ثنائية الأبعاد
جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 3 من 66.
يستخدم الوصول إلى العناصر في مصفوفة ثنائية الأبعاد بناء جملة مشابهاً للمصفوفات العادية، ولكنه يتطلب فهرسين: أحدهما للصف والآخر للعمود.
ملاحظة: في لغة C#، هناك نوعان من المصفوفات متعددة الأبعاد: المصفوفات المستطيلة (int[,]) و المصفوفات المتعرجة (int[][]). يغطي هذا الدرس المصفوفات المتعرجة، حيث يكون كل صف عبارة عن مصفوفة بحد ذاته.
أنشئ مصفوفة متعرجة (jagged array) بـ 3 صفوف و 4 أعمدة:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];تعيين قيمة لموقع محدد (فهرس الصف 1، وفهرس العمود 2):
grid[1][2] = 42;قراءة قيمة من موضع محدد (فهرس الصف 0، فهرس العمود 3):
int value = grid[0][3];بما أن الفهارس تبدأ من 0، فإن فهرس الصف 0 هو الصف الأول وفهرس العمود 3 هو العمود الرابع.
تذكر أن فهارس المصفوفة تبدأ من 0، لذا فإن نطاقات الفهارس الصالحة هي:
- الصفوف: الفهرس من 0 إلى 2 (لمصفوفة مكونة من 3 صفوف — الصف الأول هو الفهرس 0، والثاني هو الفهرس 1، والثالث هو الفهرس 2)
- الأعمدة: الفهرس من 0 إلى 3 (لمصفوفة مكونة من 4 أعمدة — العمود الأول هو الفهرس 0، والثاني هو الفهرس 1، وهكذا)
grid[3][2])، فستحصل على IndexOutOfRangeException.التحدي
متوسطاكتب دالة تسمى getElement تأخذ ثلاث وسائط:
- مصفوفة صحيحة ثنائية الأبعاد (
int[][] matrix) - فهرس الصف (
int row) - فهرس العمود (
int col)
يجب أن تعيد الدالة العنصر الموجود في الموقع المحدد إذا كانت الفهارس صالحة. إذا كان أي من الفهرسين خارج النطاق، يجب أن تعيد الدالة -1.
جرّب بنفسك
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// اكتب كودك هنا
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Null