الدرس 9 (موسع): المصفوفات ثنائية البعد (المصفوفات/الجداول)
في الدرس السابق، تعلمنا كيف ننظم البيانات في قائمة أحادية البعد (متجه). الآن، سنتقدم خطوة للأمام ونتعلم كيف ننظم البيانات في شكل جدول له صفوف وأعمدة. هذا هو عالم المصفوفات ثنائية البعد، أو كما تسمى أحيانًا المصفوفات (Matrices). هذا المفهوم ضروري لتمثيل أي بيانات لها هيكل جدولي.
تشبيه: جدول الحصص المدرسي أو شاشة السينما
فكر في جدول الحصص الأسبوعي. لتحديد حصة معينة، تحتاج إلى معلومتين: اليوم (الصف) والساعة (العمود). لا يمكنك تحديدها بمعلومة واحدة فقط. وبالمثل، فكر في مقاعد السينما. لتحديد مقعدك، تحتاج إلى رقم الصف ورقم المقعد في ذلك الصف. هذه هي بالضبط فكرة المصفوفة ثنائية البعد: كل عنصر يتم تحديده بزوج من الفهارس (صف، عمود).
1. ما هي المصفوفة ثنائية البعد؟
المصفوفة ثنائية البعد (Two-Dimensional Array / Matrice): هي بنية بيانات يمكن تخيلها على أنها جدول يتكون من M من الصفوف (Lignes) و N من الأعمدة (Colonnes). مثل المصفوفة أحادية البعد، جميع عناصرها يجب أن تكون من نفس نوع البيانات.
بشكل أساسي، يمكن اعتبارها "مصفوفة من المصفوفات". كل صف في الجدول هو في حد ذاته مصفوفة أحادية البعد.
2. تعريف (إعلان) مصفوفة ثنائية البعد
صيغة التعريف تشبه تلك الخاصة بالمصفوفة أحادية البعد، لكننا نحدد حجمين بدلاً من حجم واحد.
الصيغة العامة:
nb_lignes
: أقصى عدد من الصفوف.nb_colonnes
: أقصى عدد من الأعمدة.
أمثلة على التعريف:
3. الوصول إلى عناصر المصفوفة ثنائية البعد
للوصول إلى عنصر (أو خانة) في الجدول، نحتاج إلى تحديد إحداثياته: رقم الصف ورقم العمود. نستخدم فهرسين بدلاً من فهرس واحد.
الصيغة هي: nom_matrice[index_ligne, index_colonne]
.
أمثلة على التعامل مع العناصر:
4. التعامل مع المصفوفات ثنائية البعد (باستخدام الحلقات المتداخلة)
هنا تكمن القوة الحقيقية. بما أن لدينا بُعدين (صفوف وأعمدة)، فإننا نحتاج إلى حلقتين متداخلتين (Nested Loops) للمرور على جميع عناصر المصفوفة.
- الحلقة الخارجية: عادة ما تمر على الصفوف (من 1 إلى عدد الصفوف).
- الحلقة الداخلية: تمر على جميع الأعمدة داخل الصف الحالي (من 1 إلى عدد الأعمدة).
تعبئة وعرض مصفوفة ثنائية البعد
خوارزمية لتعبئة وعرض مصفوفة 3x4:
ملاحظة: استخدمنا هنا تعليمة افتراضية ÉcrireSansRetour
لطباعة العناصر بجانب بعضها البعض. Écrire("")
تستخدم للنزول إلى سطر جديد بعد طباعة كل صف، للحصول على شكل جدولي أنيق.
5. تطبيق عملي: حساب معدل كل طالب في مصفوفة العلامات
لنفترض أن لدينا مصفوفة العلامات bulletin[20, 5]
. نريد حساب معدل كل طالب (كل صف) على حدة.
خوارزمية حساب معدلات الطلاب:
خلاصة الدرس التاسع
- المصفوفات ثنائية البعد تنظم البيانات في شكل جدول من صفوف وأعمدة.
- يتم تعريفها بتحديد عدد الصفوف وعدد الأعمدة:
TABLEAU [lignes, colonnes]
. - للوصول إلى عنصر، نحتاج إلى فهرسين: واحد للصف والآخر للعمود (
matrice[i, j]
). - التعامل مع جميع عناصر المصفوفة يتطلب عادةً حلقتين متداخلتين، واحدة للصفوف والأخرى للأعمدة.
- هذا المفهوم أساسي لتمثيل البيانات الجدولية، الصور، الخرائط، وغيرها من الهياكل ثنائية الأبعاد.