أساسيات المصفوفات ثنائية الأبعاد
جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 1 من 66.
في لغة C#، المصفوفة المتعرجة (jagged array) هي مصفوفة من المصفوفات، مما يشكل شبكة أو هيكلاً يشبه المصفوفة (matrix). إنها تشبه الجدول الذي يحتوي على صفوف وأعمدة، حيث يمكن لكل خلية أن تحتوي على قيمة. تعد المصفوفات المتعرجة مفيدة لتمثيل البيانات التي لها علاقة ثنائية الأبعاد، مثل رقعة الشطرنج، أو مخطط الجلوس، أو الألعاب القائمة على الشبكة.
إليك كيفية التصريح عن مصفوفة متعرجة (jagged array) وتهيئتها في لغة C#:
data_type[][] arrayName = new dataType[numberOfRows][];dataType: نوع العناصر التي ستحتويها المصفوفة (على سبيل المثال، int، string، إلخ).
arrayName: الاسم الذي تطلقه على المصفوفة.
numberOfRows: عدد الصفوف في المصفوفة.
يجب بعد ذلك تهيئة كل صف بشكل منفصل:
arrayName[0] = new dataType[lengthOfFirstRow];
arrayName[1] = new dataType[lengthOfSecondRow];
// وهكذا...على سبيل المثال، لإنشاء مصفوفة متعرجة من الأعداد الصحيحة تتكون من 3 صفوف، حيث يحتوي كل صف على 4 أعمدة، ستكتب ما يلي:
int[][] matrix = new int[3][];
matrix[0] = new int[4];
matrix[1] = new int[4];
matrix[2] = new int[4];يمكنك أيضاً تهيئة مصفوفة متعرجة (jagged array) بالقيم مباشرةً:
int[][] matrix = new int[][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};التحدي
سهلقم بتهيئة مصفوفة متعرجة (jagged array) بالقيم التالية:
5, 7, 10, 24, 41
86, 13, 683, 64, 13
42, 46, 791, 111, 9
86, 88, 1845, 5, 15897
9, 1, 5, 5, 6مهمتك هي تهيئة المصفوفة المتعرجة (jagged array) بهذه القيم المحددة بشكل صحيح والتأكد من أن البرنامج يقوم بطباعة المصفوفة بشكل صحيح.
ورقة مرجعية
المصفوفة المتعرجة (Jagged array) هي مصفوفة من المصفوفات، تشكل هيكلاً يشبه المصفوفة بصفوف وأعمدة.
صيغة التصريح:
data_type[][] arrayName = new dataType[numberOfRows][];يجب تهيئة كل صف بشكل منفصل:
arrayName[0] = new dataType[lengthOfFirstRow];
arrayName[1] = new dataType[lengthOfSecondRow];مثال مع التهيئة المنفصلة:
int[][] matrix = new int[3][];
matrix[0] = new int[4];
matrix[1] = new int[4];
matrix[2] = new int[4];التهيئة المباشرة بالقيم:
int[][] matrix = new int[][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};جرّب بنفسك
using System;
class Program
{
static void Main(string[] args)
{
int[][] matrix = {
// اكتب كودك هنا
};
// طباعة المصفوفة
int rows = matrix.Length;
for (int i = 0; i < rows; i++)
{
int cols = matrix[i].Length;
for (int j = 0; j < cols; j++)
{
Console.Write(matrix[i][j] + " ");
}
Console.WriteLine();
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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