Professional Documents
Culture Documents
المصوفات م.مجدي
المصوفات م.مجدي
❖ تمهيد
❖ تعريف المصفوفة
المصفوفة ) (Arrayهي مجموعة من عناصر تنتمي إلى نفس النوع ،وموضوعة في أماكن متجاورة في
سمى الفهرس. الذاكرة ،ويمكن الرجوع إلى كل عنصر من عناصر المصفوفة على حدة عبر ُم ِّ
عرف فريد ُي َّ
ويسمح ذلك بالتصريح عن قيم متعددة لمتغير ما ومن ثم الوصول إلى كل واحدة منها بشكل منفرد دون
الحاجة إلى التصريح عن متغير لكل قيمة.
.1جميع المواقع تكون من نوع بياني واحد ،حسب صيغة التعريف float ,int ,char…..
.2يمكن الوصول عشوائيا ) ( Randomly accessedالى اي موقع من مواقعها دون االعتماد على
اي موقع في المصفوفة فمقدار الوقت المطلوب للوصول الى اي موقع هو مقدار ثابت .
.3مواقع عناصر المصفوفة تبقى ثابتة وال تتغير اثناء التعامل مع اي من عناصر المصفوفة.
.4تمثل المصفوفة في مواقع متعاقبة في الذاكرة.
❖ أنواع المصفوفات
المصفوفة الديناميكية تشبه إلى حد كبير المصفوفة العادية ،لكن حجمها قابل للتعديل أثناء تشغيل البرنامج.
تشغل عناصر DynamArrayكتلة متجاورة من الذاكرة.
بمجرد إنشاء المصفوفة ،ال يمكن تغيير حجمها .ومع ذلك ،مجموعة ديناميكية مختلفة .يمكن للمصفوفة
الديناميكية توسيع حجمها حتى بعد ملئها.
أثناء إنشاء المصفوفة ،يتم تخصيص مقدار محدد مسبًقا من الذاكرة .ليس هذا هو الحال مع المصفوفة
الديناميكية ،حيث إنها تزيد حجم ذاكرتها بعامل معين عند الحاجة.
❖ فوائد المصفوفات
• تقليل عدد المتغيرات المتشابهة ،فمثالً إذا كنا نريد تعريف 10متغيرات نوعهم int,نقوم بتعريف
مصفوفة واحدة تتألف من 10عناصر.
• التعامل مع الكود يصبح أسهل ،ألنك إذا قمت بتخزين المعلومات داخل مصفوفة ،تستطيع تعديلهم،
مقارنتهم أو جلبهم كلهم دفعة واحدة بكود صغير جداً باستخدام حلقة.
• تستطيع الوصول ألي عنصر من خالل رقم الـ indexالخاص به.
❖ تهيئة المصفوفة
المصفوفة هي كتلة مكونة من مواقع متسلسلة في الذاكرة والمخصصة لنوع معين من المتغيرات .تخصيص
المصفوفات يشبه تخصيص المتغيرات العادية ،ولكن مع إضافة قوسين مربعين إلى اسمها ][يحتويان على
عدد يمثل عدد العناصر التي يمكن أن تحتويها ذاكرة المصفوفة.
يستخدم المثال التالي مصفوفة تستخدم نوع ،intواسم المتغير ،arrayOfIntsوعدد عناصرها هو [ 5 ]:
;]int arrayOfInts[5
إذا هيأت مصفوفة بسرد جميع عناصرها فال يلزمك تضمين عدد عناصر المصفوفة داخل القوسين
تلقائيا .في المثال التالي ،تعداد المصفوفة هو 5
ً المصرف
سيحسبه ُ
ُ المعقوفين ،إذ
كذلك نستطيع تهيئة العناصر األولى فقط ،مع تخصيص مساحة للمزيد من العناصر ،وفي هذه الحالة يلزمك
كتابة طول المصفوفة بين القوسين المعقوفين .انظر الشيفرة التالية حيث نخصص مصفوف ًة خماسية (تحتوي
سيهيئ المصرف بقية العناصر بالقيمة االفتراضية لنوع العنصر (في هذه
5عناصر) مع تهيئتها جزئيًّاُ ،
الحالة ،تلك القيمة هي .)0
أي أن عناصر المصفوفة السابقة هي ( .)0 ,0 ,0 ,20 ,10كذلك يمكن تهيئة مصفوفات أنواع البيانات
األساسية األخرى بالطريقة نفسها .انظر المثال التالي للتصريح عن مصفوفة وتخصيص مساحة ذاكرة لها
دون تهيئتها:
;]char arrayOfChars[5
أو للتصريح عنها مع تهيئتها:
الحظ أنه عند الوصول إلى عناصر المصفوفة فإن فهرس المصفوفة (أو موضعها) يبدأ عند القيمة .0انظر
المثال التالي ،حيث يكون العنصر 10هو العنصر رقم ،0و 20هو العنصر رقم ،1وهكذا.
أمثلة حول طريقة تعريف مصفوفة ثنائية ( Two Dimensional Array ).
;]int arr[4][3
{ = ]int arr[4][3
{1, 2, 3},
}{4, 5, 6
;}
تم شرح كافة األساسيات والمفاهيم والخطوات األساسية للتعامل مع المصفوفات في ما سبق اما التالي
فسيكون عبارة عن امثلة عن المصفوفات..
األمثلة
مثال : 1
في ما يلي برنامج لمصفوفة أحادية تتكون من 5خانات تحتوي على القيم الموضحة 10و 20و 30و
40و 50ومن ثم استخدام الدوارة forلطباعة عناصر المصفوفة وعمل مسافات فارغة بين عناصر
المصفوفة وعن االنتهاء من طباعة جميع عناصر المصفوفة ينزل سطر واحد وهكذا انتهى البرنامج
مثال 2
يتبع البرنامج الحالي البرنامج السابق والكن مع بعض التغيرات حيث ان الحجم يحدد من قبل المستخدم فيقوم
المستخدم بتحديد عدد الخانات التي يحتاجها في المصفوفة ثم يقوم بإدخال البيانات من الكيبورد ومن ثم
عرض ما ادخلة المستخدم
مثال 3