سيتم التركيز في هذا الفصل على المصفوفات بنوعيها الأحادي والثنائي مع أمثلة توضيحية لق ا رءة
وطباعة المصفوفات والعمليات التي من الممكن إج ا رؤها عليها.
ARRAYS 4.2 المصفوفات
المصفوفة هي هيكل بيانات يخزن مجموعة من المتغي ا رت لها نفس النوع .هي مشابهة لمجموعة من الصناديق مرتبطة واحدة بالأخرى بشكل متسلسل وكل واحد من هذه الصناديق ممكن أن يحتوي على بيانات معينة وجميع البيانات في هذه الصناديق هي من نوع واحد . ويقال عن المصفوفة أنها هيكل وذلك لأن المبرمج يعلن عن نوع وحجم المصفوفة في حقل الإعلان عن )STATIC( بياني ثابت المتغيرارت , فإن حجمها سيبقى ثابت اً في البرنامج ولا يمكن تغييره , وهناك المصفوفات الديناميكية التي من الممكن أن نغير حجمها أثناء تنفيذ البرنامج . DYNAMIC نستخدم للمصفوفة متغي ا رً مفرداً فقط كأد اة لتخزين البيانات , وهذا المتغير يخزن عنوان الموقع الأول في الذاكرة الذي تخزن فيه المصفوفة وباقي المواقع تأتي بعده بالتتابع متسلسلة.
المصفوفات:
هي مجموعة مرتبة من البيانات والتي قد تحتوي على عدد ثابت من العناصر أو غير ثابت ,
وتستخدم أسلوب العنوان المحسوب لإيجاد موقع الخلية المطلوبة في الذاكرة وذلك عن طريق معادلات رياضية.
بشكل عام فإن المصفوفة نوعان مصفوفات أحادية ومصفوفة ثنائية.
المصفوفة الأحادية
نبدأ هنا مرحلة جديدة من البرمجة . لغاية الآن لسنا قادرين على معالجة وخزن كميات كبيره من
البيانات بطريقة مناسبة. فمثلاً إذا أردنا العمل على قائمة طويلة من الأعداد أو الأسماء , فإننا سنعلن
عن متغي ا رت منفصلة لكل عدد أو اسم. لحسن الحظ فإن لغة البرمجة باسكال ولغات البرمجة الأخ رى
توفر عدد اً من المتغي ا رت المهيكلة لتسهيل حل المشاكل التي تحتاج إلى العمل مع كمية كبيرة من
البيانات , ببساطة فإن المتغير من هذا النوع يستخدم معرف واحد لخزن كمية كبيرة من البيانات في
الذاكرة.
المصفوفة مصممة لحمل كمية كبيرة من البيانات من نفس النوع بطريقة منظمة . إن استخدام
المصفوفة يسمح بحجز مجموعة من مواقع الذاكرة المتتالية والتي يمكننا معالجتها ككتلة واحدة أو
مكونات منفصلة.
إذ اً المصفوفة الأحادية هي التي من الممكن كتابة عناصرها على شكل صف أو عمود واحد ويكون
عدد العناصر وبالتالي عدد المواقع في الذاكرة لخزن هذه المصفوفة فيها مساوياً إلى حجم المصفوفة.
الإعلان عن المصفوفة يأخذ الشكل التالي:
<arrayName>: Array [n..m] Of <Data Type>;
ممكن في حقل المتغي ا رت أن تأخذ الشكل التالي:
Var
myArray: Array [1..20] of Integer;
وهو متغير ويتم اختياره من قبل المبرمج , ثم تأتي )myAarray( أولا :// بإعطاء اسم للمصفوفة هنا النقطتان المتعامدتان كما في تعريف المتغي ا رت. للدلالة على أن هذا المتغير هو من نوع مصفوفة والمصفوفة )array( ثاني ا :// نكتب كلمة مصفوفة
يجب أن يكون حجمها محدد قبل البدء بتنفيذ البرنامج لذا سيكون التعريف )مصفوفة حجمها كذا وعناصرها من النوع المحدد(, عملية تحديد الحجم تكون باستخدام أقواس مربعة وبداخلها الحجم وهو يتكون من ج أ زين تفصل بينهما نقطتان فقط )للدلالة على المدى الذي تعمل به المصفوفةالجزء. الأول يمثل رقم البداية والثاني يمثل رقم النهاية , وعليه الفرق بينهما يمثل عدد العناصر في المصفوفة حجم المصفوفة إن حجم المصفوفة يحدد من قبل المبرمج وفقاً لمتطلبات البرنامج. إن استخدام المصفوفة مشابه لاستخدام المتغي ا رت الاعتيادية وبدلاً من أن نستخدم عشرين متغي ا ر كما في المثال أعلاه من نوع أعداد صحيحة , يمكن أن نستخدم متغي ا رً واحد اً كمصفوفة ) أي كمجموعة
متغيرات حسب حجم المصفوفة() سيتم حجز مواقع في الذاكرة وفقاً لذلك(لها نفس الاسم)أي أن جميع
أي لكل واحد منها رقم يشار له للموقع )index( هذه المواقع لها ذات الاسم( وتختلف بالفهرسة
)للتمييز بين متغير وآخر ( , إن العمل مع المصفوفات يساعد على تسهيل العمل مع المتغي ا رت
والمحافظة على قيم العديد من المتغي ا رت وتمكن المبرمج من إج ا رء أ عمال كثيرة بيسر وسهولة .