الموضوع السابق   الموضوع التالي 

ترتيب عنصر في مصفوفة

Function: ElementOrder

الغرض
الحصول على رقم عنصر في مصفوفة ثنائية الأبعاد إذا تم ترقيم عناصرها ترقيماً تسلسلياً بدايةً من العنصر الواقع في الصف الأول و العمود الأول، و انتهاءً بالعنصر الواقع في الصف الأخير و العمود الأخير.


الصيغة

function ElementOrder(ColCount, Row, Col: Integer; Row1: Integer = 1; Col1: Integer = 1): Integer;


الوسائط (Parameters)

ColCount عدد الأعمدة في المصفوفة (البعد الثاني).
Row رقم الصف
Col رقم العمود
Row1 رقم الصف الأول (بداية البعد الأول). الافتراضي 1.
Col1 رقم العمود الأول (بداية البعد الثاني). الافتراضي 1.

الشرح
في بعض البرامج - كالألعاب مثلاً - قد تحتاج أحياناً إلى معالجة عناصر مصفوفة ثنائية الأبعاد و كأنها مرقمة ترقيماً تسلسلياً بدايةً من العنصر الواقع في الصف الأول و العمود الأول، و انتهاءً بالعنصر الواقع في الصف الأخير و العمود الأخير (إذا اعتبرنا أن البعد الأول يمثل الصفوف و البعد الثاني يمثل الأعمدة)، كما في هذين المثالين:

 12345
1
12345
678910
1112131415
1617181920
2
3
4

 -2-1012
5
12345
678910
1112131415
1617181920
6
7
8

نلاحظ أن العنصر المظلل يحمل الرقم التسلسلي 14. للحصول على هذا الرقم يكون استدعاء الدالة ElementOrder للنموذج الأول كالتالي:

ElementOrder(5, 3, 4);

لاحظ أننا أهملنا البارامترين الأخيرين (Row1 و Col1) و في هذه الحالة ستعتبر الدالة أن المصفوفة تبدأ بالعنصر (1, 1) و هو ما عليه المصفوفة الأولى.

أما الاستدعاء للمصفوفة الثانية فيكون بالشكل التالي:

ElementOrder(5, 3, 4, 5, -2);

حيث نحتاج إلى تحديد رقم الصف الأول (بداية البعد الأول) و رقم العمود الأول (بداية البعد الثاني).

في كل الأحوال الدالة تبدأ الترقيم دائماً بالرقم 1.


 أعلى الصفحة
 الموضوع السابق   الموضوع التالي