الفرق بين المراجعتين لصفحة: «برمجة سي ++/الدرس الخامس عشر»

تم حذف المحتوى تمت إضافة المحتوى
ط روبوت: تغييرات تجميلية
سطر 5:
|[[تحرير سي بلص بلص: الدرس السادس عشر|الدرس التالي»]]
|}
Structure أو البناء أو البنية هو مفهوم مفيد جدا في البرمجة، وهو يعتبر أحد الأسس التي أدت إلى ولادة البرمجة الكائنية التوجه. ويستخدم لجمع مجموعة من المتغيرات المختلفة المتعلقة بشيء ما معا، فعلى سبيل المثال، لو كان برنامجنا يسعى لبناء وتخزين ملفات طلبة المدارس، فما هي مجموعة المتغيرات التي نتحدث عنها، وما هو ''الشيء'' الذي نتحدث عنه.
 
إن ''الشيء'' الذي نتحدث عنه في مثل هذه الحالة هو الطالب، بالطبع ليس هناك في المدارس طالب واحد، ولكن وحدة البناء ستكون الطالب ، وعندها يمكننا تكرار هذه الوحدة بأي عدد نشاء من المرات. أما المتغيرات فهي قد تكون اسم الطالب مثلا! تاريخ ميلاده! علاماته...إلخ.
 
لو أردنا أن نجعل البرنامج يتعامل مع طالب مثلا دون استخدام وحدة البناء Struct ، وأردنا أن نتحدث عن سنة ميلاده ومجموع علاماته واسمه الأول فقط!! قد يكون شكل الإعلان عن هؤلاء الطلبية ربما كالآتي :
* ''ملاحظة:إرساء قيم الاسم مكتوبة بشكل مبسط لأغراض التوضيح ، وهذه ليست الطريقة الصحيحة لعملها.''
 
<div dir="ltr">
سطر 44:
 
</div>
|[[صورةملف:Arrays.png|left]]
|}
وبكلمات أخرى ، فإن ما يتم هو البحث عن الاسم Hanna في مصفوفة الأسماء، فنجد مثلا أن موقعه هو الموقع رقم 5 مثلا في مصفوفة الأسماء، ولمعرفة سنة ميلاده، فإننا سنبحث عن القيمةالموجودة في الموقع الخامس من مصفوفة أعوام الميلاد! وهكذا...
 
ألن يكون من الأفضل أن نرسي قيمة لاسم الطالب ، وبعدها وبسهولة نرسي قيمة لتاريخ ميلاده وأخرى لعلاماته، كل ذلك بمعاملة بناء من نوع طالب بمعلومات فرعيه عنه، بدلا من العديد من المصفوفات التي عليك تتبعها بشكل منفصل؟ ... إلخ. إذا شعرت أن هذا الحل هو الأنسب ، فما عليك إلا استخدام بناء او Struct للطالب. وإليك مثال ذلك:
سطر 93:
بالأضافة إلى سهلولتها في البرمجة فانها ايضاً أكثر كفاءة من حيث سرعة تنفيذ البرنامج حيث انك عادة ما نطلب اسم الطالي مع ميلاده, وليس اسمين لطالبين وتاريخي ميلاد متتابعين. فعند استخدام المصفوفات المنفصلة سيكون هناك عبيء كبير في الوصول إلى الأماكن المختلفة من الذاكرة، وهذه فائدة اخر للبنيات.
 
|[[صورةملف:Struct.png|left|]]
|}
{|align="center"