مثنى عبد الرسول محسن الفرطوسي
كلية شط العرب الجامعة
التراكيب 51110010765 :
تاتي اهميه التراكيب لتعريف متغيرات بطرق مختلفة عن الطرق المعهودة سابقا فقد نحتاج ان نعبر عن شئ له
اكثر من متغير او انه ليس له نوع بياني محدد مثلا لو كنت تعمل في محل واحتجت ان تعبر عن سلعك المعروضه
فكل سلعة لها اسم وسعر ورقم تسلسلي و منشا مثلا فكيف ستعرف السلعة الواحدةة هل ستعرفها من النوع
الرمزي ام الصحيح ام الحقيقي ام فانت تحتاج هنا الى التعامل مع اكثر من نوع بياني للسلعة الواحدة
و التركيب بمفهومه العام هو القيد فهو يعبر عن عدة انواع بيانية مجموعة تحت تعريف واحد
الصيغة العامة :
4 : هي كلمة محجوزة للدلالة على انك تعلن عن تركيب
6 : هو النوع البياني الذي ستعرف فيه عناصر التركيب كان يكون +0118, 101, 1009 او غيرها -
14 : هو العنصر المراد تعريفه وهو يمكن ان يكون أي اسم تضعه شرط ان لا يكون كلمة محجوزة (أي
انه المتغير الذي سيقون عناصر التركيب) ولعدد غير محدد من العناصر وحسب حاجتك
001601-86 : هي معرفات من نوع هذا التركيب( وهي هنا اختيارية) ويمكن تعريفها في هذا الموضع
مباشرة او داخل الدالة الرئيسية كانها متغير من نوع تركيب
كيف نعرف متغيرات من نوع تركيب
نستطيع عمل ذلك وطبعا بعد الاعلان عن التركيب وكما قلنا هناك طريقتين لتعريف المتغيرات من نوع هذا
التركيب وهما
أ- الاولى داخل جسم الدالة الرئيسية وكأنها متغير عادي مثلا اعلنا عن التركيب التالي
( ) عمتقه غمة
ب - اما الطريقة الاخرى لتعريف المتغيرات فتتم مباشرة بعد الاعلان عن التركيب كما ياتي
م 0] تعسفقه عقطه
تلاحظ هنا اننا كمنا بتعريف المتغيرات خارج الدالة الرئيسية بعد التركبب ن الحاجة الى
تعريفهم داخل الدالة الرئيسية
ولا فرق بين الطريقتين سوى انك لن تقوم بتعريف المتغيرات من نوع التركيب داخل الدالة الرئيسية كما وانك
تستطيع بهذه الطريقة (الثانية) ان تهمل اسم التركيب 07000015 او تتركه لافرق في الحالتين
كما يمكنك تعريف متغيرات بالجمع بين الطريقتين على شرط ان يكون للتركيب اسم :
( )متهده غمص
التعامل مع التركيب :
18 و 01106 من النوع 110281 وهنا نستطيع التعامل مع المتغير كالاتي مثلا اردنا ادخال قيم للمتغير 7١/
فيكون بالشكل التالي:
7 عدم 7ا7<حمصةه
تلاحظ هنا يذكر المتغير اولا متبوع بنقطة ( ) ثم اسم العنصر المراد استخدامه مثلا 01108 , 08076 وتاتي
اهمية النقطة ( ) هي انه وكماقلنا انه للتركيب عناصر ويذكر بعد هذه النقطة اسم العنصر و الذي يكون هو
المتغير الفعلي الذي يتم التعامل معه
ايضا اود الاشارة الى ان كل متغير مستقل بقيم عناصره فمثلا (©71/0310 ليس له علاقة ب 801001166؟ )
فلكل قيمته ويتبع متغير مستقل هو المتغير الرئيسي /171 او 8010؟
ايضا لو اردت طباعة عنصر المتغير فيتم بالشكل
©1316 ©<©©<<>> اتام
ويمكنك اجراء كافة العمليات الحسابية و المنطقية على عناصر التركيب مثلا :
اما الان اعتقد ان الفكرة من التركيب وطرق التعامل معه قد اتضحت وبناء علية سنأخذ مثال متكامل ومختلف
211 :ج161 20 811201585 عاتحوطة ةو12صططة»«ه //
77 صذخقتج حقو
ب" لدصا16 2 عدم ص2 ">>011
+" 158:37 عمد 6 لعتو23 تلا" >> عتم
11316©7 1716 >> توه
»> وذ وعباولت وقد مه جوع
ود ل جهو ب وعود كه نا ك٠ مك تاروع
7 صمصعتد 6<
المثال يبين كيفية التعامل مع التركيب وعناصره
هنا تم الاعلان عن تركيب اسم 0007/6 ليعبر عن الافلام (اسم الفيلم 1146 وتاريخه 688/) ثم ابتدا البرنامج
الرئيسي بتعريف متغيرين من نوع هذا التركيب هما 1100175 , ©0010 وتم ادخال القيم الى عناصر المتغير
© مباشرة داخل البرنامج ( لاحظ ان المتغير الرمزي لانستطيع اسناد القيم اليه بالعلامة - ولذلك استخدمنا
الدالة ("/(©00©17556 ©517001/)011061111©,"50230 لنسخ محتوى الخيط الرمزي الى المتغير
بعد التنفيذ يطلب البرنامج من المستخدم ادخال قيم الى المتغير الثاني 075ل وبعد ان تدخل القيم يقوم البرنامج
بطباعة قيم المتغيرين على الشاشة
كما يمكنك استخدام التراكيب مع الدوال ايضا حيث بامكانك تمرير متغير التركيب كاملا الى الدالة مثلا في المثال
اعلاه نستطيع عمل دالة للطباعة اسمها 08104 ونرسل لها متغير التركيب وتقوم بطباعة عناصره
قمع عفد
كما يمكنك ايضا تمرير عنصر واحد او اكثر الى دالة على ان يعرف باراميتر الدالة من نفس نوع العنصر داخل
التركيب وليس من نوع التركيب
مثلا لو اردنا تمرير العنصر 11416 فقط الى الدالة لطباعته فسيكون البرنامج بالصورة التاليه
56112012165 اتحوطة 126صصة»«و //
©5030" ,21316 016) لاط 581
العنصر 11416 واهملنا 688 وذلك حسب حاجتنا في البرنامج
في هذا المثال سننشئ قاعدة بيانات بالاعتماد على التراكيب
كمنا سابقا بتعريف متغيرات من نوع تراكيب مثلا التركيب التالي يعرف طالب على اساس معلوماته
05؟] عمسمو قط
والان لو اردنا ان نعرف طالب من هذا النوع فسنعرفه كالتالي
ليست هناك أي مشكلة ولكن ؛ لو اردنا تعريف عشرة طلاب فهل سنكتب عشر متغيرات كما في الشكل
وتخيل لو انك اردت ادخال العناصر للطالب الاول فسيتحتم عليك ان تكتب
عمليات المعالجة و المقارنات و التعديل و و و و
فهل هذه طريقة عملية في البرمجة وهل تدل على مهارة او احتراف ؟ بالتاكيد لا
اذن لا بد من وجود طريقة اخرى ابسط واقصر وهي باستعمال المصفوفة ولا شئ سيختلف سوى انك لن تعرف
متغير من نوع 0]0ز ولكنك ستعرف مصفوفة من هذا النوع 1!0ز وكما يلي
اصبحت لدينا مصفوفة من نوع تركيب 1«1]0 ولادخال بيانات الى العنصر الاول من المصفوفة
:6ع [501001)]0>> أنان
وهكذا بقية العناصر والذي سيختلف فقط دليل المصفوفه ,0,1,2,3
ولطباعة العمر مثلا
وهكذا بقية العننصر
وكما تعرف انك تستطيع استخدام العدادات مع المصفوفة ولذلك تستطيع التعامل مع كل عناصر المصفوفة بسهولة
ويسر
شاهد المثال التالي
5612126-15 غعتحوطة و1صطة»«ه //
وبذلك تستطيع انشاء قاعدة بيانات كاملة بهذه الطريقة كما يمكنك تعديل البرنامج لاضافة ميزات اخرى اليه مثل
البحث عن اسم طالب او معرفة الطلاب ذوي اعمار محددة و الكثير الكثير
التراكيب المتداخلة
من نوع تركيب ايضا) وهذه تسمى التراكيب المتداخلة
+ بج مع عصة">> عيموه
المثال ابتدا بالاعلان عن تركيب اسمه 5_08076 تتكون عناصرة من الاسم الاول 11851 و اسم الاب 181161 و
اسم العائلة 18071 ؛ ثم تم تعريف تركيب اخر اسمة 54006101 _5 تم فيه تعريف عنصرين الاول هو الاسم
16 من نوع التركيب 9_080706 المعلن عنه وبذلك يمكن ان ياخذ العنصر 080706 احد القيم التالية
بعدها تم الاعلان عن تركيب اسمه 5_510061042 والذي يحتوي على عنصرين العنصر الاول 1081076 من نوع
التركيب 5_08176 والذي من الممكن ان ياخذ ثلاث عناصر كما ذكرنا ؛ و العنصر الثاني اع من النوع الصحيح
٠ اما في الدالة الرئيسية فقد ابتدئنا بالاعلان عن مصفوفه اسمها 540 من نوع التركيب 5_5100601 وتم
استخدام عداد (00010161) لادخال القيم اليها وكما تلاحظ
حيث للتعامل مع العنصر 08076 من المعرف [5100]1 ينبغي وضع نقطة ( ) بعد [540]1 وبعدها كلمة
9_6 ثم بعد النقطة نكتب العنصر المراد وهو في مثالنا 11154 اق /[18071
اما العنصر ع التابع للتركيب 5_5400614 فانه لادخال القيم اليه يذكر العنصر المعرف مثلا [5400]1 متبوع
بنقطة ثم برج مثلا:
ع«معطالة1 بلا 101 |
الى البرمجة الكائنية المنحى م00
تم بحمد الله