| الموضوع السابق | الموضوع التالي |
الغرض
تحديد رقم الصف و رقم العمود لعنصر في مصفوفة ثنائية الأبعاد بمعلومية ترتيبه فيها.
الصيغة
procedure GetRowAndCol(ItemOrder, RowCount, ColCount: Integer; var Row, Col: Integer; Row1: Integer = 1; Col1: Integer = 1);
الوسائط (Parameters)
| ItemOrder | ترتيب العنصر في المصفوفة (باعتبار أن العنصر رقم 1 هو العنصر الواقع في الصف الأول و العمود الأول). | |
| RowCount | عدد الصفوف في المصفوفة (البعد الأول). | |
| ColCount | عدد الأعمدة في المصفوفة (البعد الثاني). | |
| Row | بارامتر متغير (var) حيث سيتم تخزين رقم الصف. | |
| Col | بارامتر متغير (var) حيث سيتم تخزين رقم العمود. | |
| Row1 | رقم الصف الأول (بداية البعد الأول). الافتراضي 1. | |
| Col1 | رقم العمود الأول (بداية البعد الثاني). الافتراضي 1. |
الشرح
في بعض البرامج - كالألعاب مثلاً - قد تحتاج أحياناً إلى معالجة عناصر مصفوفة ثنائية الأبعاد و كأنها مرقمة ترقيماً تسلسلياً بدايةً من العنصر الواقع في الصف الأول و العمود الأول، و انتهاءً بالعنصر الواقع في الصف الأخير و العمود الأخير (إذا اعتبرنا أن البعد الأول يمثل الصفوف و البعد الثاني يمثل الأعمدة)، كما في هذين المثالين:
| 1 | 2 | 3 | 4 | 5 | |||||||||||||||||||||
| 1 |
| ||||||||||||||||||||||||
| 2 | |||||||||||||||||||||||||
| 3 | |||||||||||||||||||||||||
| 4 | |||||||||||||||||||||||||
| -2 | -1 | 0 | 1 | 2 | |||||||||||||||||||||
| 5 |
| ||||||||||||||||||||||||
| 6 | |||||||||||||||||||||||||
| 7 | |||||||||||||||||||||||||
| 8 | |||||||||||||||||||||||||
فإذا كنا نعرف الرقم التسلسلي لعنصر ما (مثلاً العنصر المظلل الذي يحمل الرقم التسلسلي 14) و نريد معرفة رقم الصف و رقم العمود اللذين يقع فيهما هذا العنصر فإن استدعاء الإجراء GetRowAndCol للنموذج الأول يكون كالتالي:
var
Row, Col: Integer;
.
.
.
GetRowAndCol(14, 4, 5, Row, Col);
لاحظ أننا أهملنا البارامترين الأخيرين (Row1 و Col1) و في هذه الحالة سيعتبر الإجراء أن المصفوفة تبدأ بالعنصر (1, 1) و هو ما عليه المصفوفة الأولى.
أما الاستدعاء للمصفوفة الثانية فيكون بالشكل التالي:
GetRowAndCol(14, 4, 5, Row, Col, 5, -2);
حيث نحتاج إلى تحديد رقم الصف الأول (بداية البعد الأول) و رقم العمود الأول (بداية البعد الثاني).
في كل الأحوال يعتبر الإجراء أن الترقيم يبدأ دائماً بالرقم 1.
أعلى الصفحة
| الموضوع السابق | الموضوع التالي |