أخر الاخبار

المصفوفات ثنائية الأبعاد - تعلم البرمجة بلغة C بلس بلس


لا تختلف المصفوفات الثنائية كثيراً عن المصفوفة أحادية الابعاد .تختلف فقط في العنونة فبدل من "index" واحد نستخدم اثنان واحد للصفوف وأخر للأعمدةمثال مصفوفة (3*2) أي مكونة من ثلاث صفوف وعموديين


العنونة تكون (رقم العمود ,رقم الصف) وان العنونة للاعمدة والصفوف تبدأ من الصفر وليس من الواحد أي لو أردنا الوصول إلى عنصر في الصف الثاني العمود الاول تكون عنونه (1,0) والمصفوفة الثنائية أيضاً هي مجموعة خاليا متتالية في الذاكرة تحجز لغرض خزن معلومات معينة في داخلها كأن نخزن في داخلها أرقام أو أحرف.



 تبقى القيم مخزنة داخل المصفوفة حتى نغلق البرنامج إذا لم نغيرها داخل البرنامج. في تعريف المصفوفة يجب ان نذكر عدد المواقع التي نحتاجها في العمل في بداية البرنامج حتى يحجزها المترجم للمصفوفة ويخزن قيم أخرى داخل هذه المواقع تبقى محجوزة فقط لعناصر المصفوفة. تعريف المصفوفة يكون على هذا الشكل:



- (arrrayname) هوا اسم المصفوفة التي سنتعامل معه في البرنامج أي اسم ممكن.
-  (rwo) هو عدد صفوف المصفوفة ,(columns) هو عدد الاعمدة في المصفوفة.
- (array of Trype) هو نوع المصفوفة التي سوف نعرفها قد تكون حرفية أو رقمية .لو عرفنا مصفوفة من نوع (integer) جميع عناصرها تكون (integer( ولا يجوز تخزين أحرف في داخلها.

مثال:تعريف مصفوفة من نوع (integer) حجمها (3*2) واسمها (first_array).


فلو قمنا برسم هذة المصفوفة ذات حجم 3 صفوف وعمودان


كذلك تخزين هذه العناصر في الذاكرة يكون نفس طريقة تخزين المصفوفة الاحادية لكن هنا يخزن صف وبعده صف أخر بالتسلسل إلى أن تنتهي الصفوف.




اما لو أردنا وضع رقم معين في جميع مواقع عناصر المصفوفة وقت التعريف. مثال إذا أردنا وضع رقم صفر في جميع مواقع مصفوفة حجمها (2*2)


تعريف وإدخال المصفوفة الثنائية في البرنامج

هذه الخطوات ثابتة في تعريف وإدخال أي مصفوفة ثنائية ال تتغير ابداً مثال: مصفوفة حجمها (4*3) من نوع integer سيكون تعريفها وإدخالها على الشكل التالي:





حجم الخط
+
16
-
تباعد السطور
+
2
-