تدوين الفهرس
في الرياضيات وبرمجة الحاسوب ، يُستخدم ترميز الفهرسة لتحديد عناصر مصفوفة من الأرقام. وتختلف طريقة استخدام الفهرسة باختلاف المجال. فعلى وجه الخصوص، توجد طرق مختلفة للإشارة إلى عناصر قائمة أو متجه أو مصفوفة ، وذلك بحسب ما إذا كان الكاتب بصدد كتابة بحث رياضي رسمي للنشر، أو كتابة برنامج حاسوبي .
في الرياضيات
من المفيد في الرياضيات الإشارة إلى عناصر المصفوفة باستخدام الرموز السفلية. يمكن أن تكون هذه الرموز أعدادًا صحيحة أو متغيرات . تتخذ المصفوفة شكل الموترات عمومًا، إذ يمكن التعامل معها كمصفوفات متعددة الأبعاد. ومن الحالات الخاصة (والأكثر شيوعًا) المتجهات (المصفوفات أحادية البعد) والمصفوفات (المصفوفات ثنائية البعد).
ما يلي ليس سوى مقدمة للمفهوم: يُستخدم ترميز الفهرس بتفصيل أكبر في الرياضيات (خاصةً في تمثيل ومعالجة عمليات الموتر ). راجع المقالة الرئيسية لمزيد من التفاصيل.
المصفوفات أحادية البعد (المتجهات)
يتم التعامل مع المتجه كمصفوفة من الأرقام عن طريق كتابته كمتجه صف أو متجه عمود (أيهما يستخدم حسب السهولة أو السياق):
تسمح طريقة الفهرسة بتحديد عناصر المصفوفة ببساطة عن طريق كتابة i ، حيث يُعرف أن الفهرس i يتراوح من 1 إلى n ، نظرًا لوجود n بُعد. [ 1 ] على سبيل المثال، بالنظر إلى المتجه:
ثم بعض الإدخالات هي
- .
يمكن تطبيق هذا الترميز على المتجهات في الرياضيات والفيزياء . معادلة المتجهات التالية
ويمكن أيضًا كتابتها بدلالة عناصر المتجه (أو مكوناته)، أي
حيث تأخذ المؤشرات نطاقًا محددًا من القيم. يُمثل هذا التعبير مجموعة من المعادلات، معادلة لكل مؤشر. إذا كان لكل متجه n عنصرًا، أي i = 1, 2, ..., n ، فإن المعادلات تكون صريحة.
وبالتالي، فإن ترميز الفهرسة بمثابة اختصار فعال لـ
- تمثيل البنية العامة للمعادلة،
- بينما ينطبق ذلك على المكونات الفردية.
المصفوفات ثنائية الأبعاد

يتم استخدام أكثر من فهرس واحد لوصف مصفوفات الأرقام، في بعدين أو أكثر، مثل عناصر المصفوفة، (انظر أيضًا الصورة إلى اليمين)؛
يُكتب عنصر المصفوفة A باستخدام مؤشرين، ولنقل i و j ، مع أو بدون فواصل للفصل بينهما: a ij أو a i,j ، حيث يُمثل المؤشر الأول رقم الصف والثاني رقم العمود. كما يُستخدم التجاور كرمز للضرب؛ وقد يُسبب هذا بعض الالتباس. على سبيل المثال، إذا
ثم بعض الإدخالات هي
- .
بالنسبة للمؤشرات الأكبر من 9، قد يكون التدوين القائم على الفاصلة مفضلاً (على سبيل المثال، 3,12 بدلاً من 312 ) .
تُكتب المعادلات المصفوفية بطريقة مشابهة للمعادلات المتجهة، مثل:
من حيث عناصر المصفوفات (المعروفة أيضًا بالمكونات)
لجميع قيم i و j . مرة أخرى، يُمثل هذا التعبير مجموعة من المعادلات، معادلة واحدة لكل فهرس. إذا كانت المصفوفات تحتوي على m صفًا و n عمودًا، أي i = 1، 2، ...، m و j = 1، 2، ...، n ، فسيكون هناك mn معادلة.
المصفوفات متعددة الأبعاد
تتيح هذه الصيغة تعميمًا واضحًا للمصفوفات متعددة الأبعاد من العناصر: الموترات. على سبيل المثال،
يمثل مجموعة من المعادلات العديدة.
في تحليل الموترات، يتم استخدام الرموز العليا بدلاً من الرموز السفلى لتمييز الكيانات المتغيرة والمتغيرة عكسياً، انظر التغاير والتغاير العكسي للمتجهات ورفع وخفض المؤشرات .
في مجال الحوسبة
في العديد من لغات البرمجة، يُعدّ ترميز الفهرس طريقةً لعنونة عناصر المصفوفة. تُستخدم هذه الطريقة لأنها الأقرب إلى كيفية تنفيذها في لغة التجميع، حيث يُستخدم عنوان العنصر الأول كأساس، ويُستخدم مُضاعف (الفهرس) لحجم العنصر لعنونة العناصر داخل المصفوفة.
على سبيل المثال، إذا تم تخزين مصفوفة من الأعداد الصحيحة في منطقة من ذاكرة الحاسوب تبدأ من خلية الذاكرة ذات العنوان 3000 ( العنوان الأساسي )، ويشغل كل عدد صحيح أربع خلايا (بايتات)، فإن عناصر هذه المصفوفة تقع في مواقع الذاكرة 0x3000، 0x3004، 0x3008، ...، 0x3000 + 4( n - 1) (لاحظ الترقيم الذي يبدأ من الصفر ). بشكل عام، يكون عنوان العنصر رقم i في مصفوفة ذات عنوان أساسي b وحجم عنصر s هو b + 4 (n - 1 ).
تفاصيل التنفيذ
في لغة البرمجة C ، يمكننا كتابة ما سبق *(base + i)بصيغة المؤشر أو base[i]بصيغة فهرسة المصفوفة، وهما متكافئتان تمامًا لأن معيار C يُعرّف صيغة فهرسة المصفوفة كتحويل إلى صيغة المؤشر. ومن المصادفة، بما أن جمع المؤشرات عملية تبادلية، فإن هذا يسمح بتعبيرات غير شائعة مثل 3[base]تلك التي تُكافئ [ 2 ]base[3] .
المصفوفات متعددة الأبعاد
تصبح الأمور أكثر إثارة للاهتمام عندما ننظر إلى المصفوفات التي تحتوي على أكثر من فهرس، على سبيل المثال، جدول ثنائي الأبعاد. لدينا ثلاثة احتمالات:
- اجعل المصفوفة ثنائية الأبعاد أحادية البعد عن طريق حساب فهرس واحد من اثنين
- لنفترض وجود مصفوفة أحادية البعد حيث يكون كل عنصر عبارة عن مصفوفة أحادية البعد أخرى، أي مصفوفة من المصفوفات
- استخدم مساحة تخزين إضافية لحفظ مصفوفة عناوين كل صف من صفوف المصفوفة الأصلية، وخزّن صفوف المصفوفة الأصلية كمصفوفات أحادية البعد منفصلة.
في لغة C، يمكن استخدام الطرق الثلاث جميعها. عند استخدام الطريقة الأولى، يُحدد المبرمج كيفية ترتيب عناصر المصفوفة في ذاكرة الحاسوب، ويُقدم الصيغ لحساب موقع كل عنصر. تُستخدم الطريقة الثانية عندما يكون عدد العناصر في كل صف متساويًا ومعروفًا وقت كتابة البرنامج. يُعلن المبرمج أن المصفوفة تحتوي على ثلاثة أعمدة، على سبيل المثال، بكتابة elementtype tablename[][3];. ثم يُشير إلى عنصر مُحدد من المصفوفة بكتابة tablename[first index][second index]. يحسب المُترجم إجمالي عدد خلايا الذاكرة التي يشغلها كل صف، ويستخدم الفهرس الأول للعثور على عنوان الصف المطلوب، ثم يستخدم الفهرس الثاني للعثور على عنوان العنصر المطلوب في ذلك الصف. عند استخدام الطريقة الثالثة، يُعلن المبرمج أن الجدول عبارة عن مصفوفة من المؤشرات، كما في elementtype *tablename[];. عندما يُحدد المبرمج لاحقًا عنصرًا مُعينًا tablename[first index][second index]، يُنشئ المُترجم تعليمات للبحث عن عنوان الصف المُحدد بالفهرس الأول، ويستخدم هذا العنوان كأساس عند حساب عنوان العنصر المُحدد بالفهرس الثاني.
void mult3x3f ( float result [][ 3 ], const float A [][ 3 ], const float B [][ 3 ]) { int i , j , k ; for ( i = 0 ; i < 3 ; ++ i ) { for ( j = 0 ; j < 3 ; ++ j ) { result [ i ][ j ] = 0 ; for ( k = 0 ; k < 3 ; ++ k ) result [ i ][ j ] += A [ i ][ k ] * B [ k ][ j ]; } } }بلغات أخرى
في لغات برمجة أخرى مثل باسكال، قد تبدأ الفهارس من 1، لذلك يمكن تغيير الفهرسة في كتلة من الذاكرة لتناسب مخطط عنونة يبدأ من 1 عن طريق تحويل خطي بسيط - في هذا المخطط، يكون موقع الذاكرة للعنصر رقم i ذي العنوان الأساسي b وحجم العنصر s هو b + ( i − 1) s .
مراجع
- البرمجة باستخدام لغة C++ ، ج. هوبارد، سلسلة شوم، ماكجرو هيل (الولايات المتحدة الأمريكية)، 1996، رقم ISBN 0-07-114328-9
- حساب التفاضل والتكامل الموتر ، دي سي كاي، مخططات شوم، ماكجرو هيل (الولايات المتحدة الأمريكية)، 1988، ISBN 0-07-033484-6
- الأساليب الرياضية للفيزياء والهندسة ، كيه إف رايلي، إم بي هوبسون، إس جيه بينس، مطبعة جامعة كامبريدج، 2010، رقم ISBN 978-0-521-86153-3
- الترميز الرياضي
- بنى البرمجة
