المصفوفات:
المصفوفة هي مجموعة من العناصر من نفس النوع، وتكون عناصر المصفوفة مرتبة بحيث يمكننا الوصول إلى عنصر نريده بتحديد ترتيبه في المصفوفة.
فالمصفوفات عبارة عن مجموعة من العناصر المتتالية يتم حجز موقع لها في الذاكرة بشكل متتالي لها اسم مشترك ونوع بيانات مشترك.
يشار إلى كل عنصر منها باستخدام اسم المصفوفة ودليل (مؤشر) (index) الذي يمثل ترتيب ذلك العنصر في المصفوفة.
ويمكن تعريف المصفوفة بأنها: سلسة من المتغيرات تحمل نفس الاسم ويتم التمييز بين هذه المتغيرات باستخدام رقم المتغير داخلها"
فوائد المصفوفات:
1- توفير الوقت والجهد.
2- تؤدي إلى بساطة البرنامج وصغر حجمه.
والمصفوفات تنقسم لنوعين فهناك المصفوفات ذات البعد الواحد والمصفوفات ذات البعدين.
مصفوفات البعد الواحد:
المصفوفة ذات البعد الواحد هي مجموعة من العناصر مرتبة بحيث يمكن الوصول إلى أي عنصر فيها باستخدام ترتيبه بالنسبة لأول عنصر في المصفوفة وفي لغة c++ يأخذ أول عنصر الرقم صفر والشكل الآتي يوضح مصفوفة ذات بعد واحد
A=[2 3 4 5 6]
وعناصر المصفوفة مرتبة بدءاً من العنصر الأول والذي يأخذ الرقم صفر، ويكون العنصر الأول a[0] مساوياً للقيمة 2 , وبالمثل يكون a[1]=3 و a[2]=4 وهكذا...
تعريفالمصفوفة ذات البعد الواحد:
لقد سبق وأن درست في برنامج فيجول بيسك كيفية الإعلان عن مصفوفة ذات بعد واحد، حيث كان شكل جملة الإعلان عن مصفوفة ذات بعد واحد كالآتي:
Dim اسم المصفوفة (-1 عدد العناصر) as نوع البيانات
مثال:
للإعلان في برنامج الفيجول بيسك عن مصفوفة اسمها markesعدد عناصرها 10 ونوع بياناتها double
الجواب: dim markes(9) as double
أما في لغة c++ فللإعلان عن مصفوفة ذات بعد واحد يكون كالآتي:
قراءة عناصر المصفوفة ذات البعد الواحد عن طريق لوحة المفاتيح
طباعة عناصر المصفوفة ذات البعد الواحد في سطر واحد:
طباعة عناصر المصفوفة ذات البعد الواحد كل عنصر في سطر:
مثال: لإيجاد أكبر عدد في المصفوفة وموقعه:
إعطاء قيم إبتدائية للمصفوفة:
المثال الموضح بالشكل الآتي يوضح كيفية التعامل مع مصفوفة ذات بعد واحد بالاسم A
ويقوم البرنامج في المثال السابق بعدة عمليات نتناولها بالتفصيل:
السطر المشار إليه بالرقم (1) يعلن عن المصفوفة من النوع العددي الصحيح (int) وعدد العناصر 4 و الإعلان عن المصفوفة كالإعلان عن المتغيرات العادية يذكر نوع المتغيرات أولاً ثم اسم المصفوفة متبوعاً بعدد العناصر بين قوسين مربعين، ويلاحظ أنه لابد لنا من حلقة تكرارية لإدخال البيانات في المصفوفة والحلقة (for) الأولى تقوم بتعبئة المصفوفة بالبيانات التي يدخلها المستخدم واحداً تلو الآخر، أما الحلقة (for) الثانية فتقوم بعرض عناصر المصفوفة التي تم إدخالها عنصراً عنصراً.
المصفوفة ذات ابعدين:
المصفوفة ذات البعدين تحتوي على عناصر من نفس النوع ولكنها مرتبة في صفوف وأعمدة وبذلك تختلف طريقة الوصول للعناصر إذ يلزم لتحديد العنصر استخدام رقم الصف ورقم العمود.
وسنتناول فيما يلي كيفية التعامل مع المصفوفات من خلال لغة c++ والإعلان عنها وتخصيص قيم للعناصر وطباعة العناصر وغيرها من أساليب معالجة المصفوفات.
يتم التعامل مع المصفوفة ثنائية البعد برمجيا على أنها جدول ثنائي البعد مكون من صفوف وأعمدة حيث تمثل الخلايا الناتجة من تقاطع الصفوف بالأعمدة عناصر هذة المصفوفة.
لتمثيل مصفوفة برمجياً ل3 طلاب في 4 مواد مختلفة، فالجدول الذي بالأسفل يوضح مصفوفة ممثلة برمجياً تتكون من 3 صفوف و4 أعمدة:
ملحوظة: يبدأ ترقيم الصفوف والأعمدة إبتداء من صفر.
\
تعريف المصفوفة ذات البعدين:
إعطاء قيمة إبتدائية لعناصر المصفوفة ذات البعدين:
قراءة عناصر المصفوفة ذات البعدين عن طريق لوحة المفاتيح:
طباعة عناصر المصفوفة ذات البعدين صف صف:
إتخاذ القرار:
في البرامج متتالية الأوامر ينفذ الكمبيوتر العبارات الموجودة في البرنامج بالترتيب الذي وردت به، ولكن في الحياه العملية نحتاج لإتخاذ بعض القرارات تبعا لشروط معينة، ومن هنا ظهرت الحاجة لوجود طرق لجعل البرنامج قادراً على تغيير تسلسل تنفيذ العمليات تبعاً للشروط المطلوبة، وسنتعرض هنا لطرق إتخاذ القرار في لغة c++ وكيفية تغيير تسلسل التنفيذ تبعاً للشروط الموضوعة.