البرمجة الإجرائية و البرمجة البنيوية

    تمر دردشة الساحة الخاصة بالمتصفح والموبايل بفترة صيانة دورية هذا ونعتذر للجميع على الإنقطاع المؤقت بإمكانكم المشاركة في المنتدى لحين عودتها :)

    • البرمجة الإجرائية و البرمجة البنيوية

      كانت البرمجة الإجرائية (Procedural Programming) و تعني هي سلسلة من الإجراءات المنفذة على مجموعة من البيانات . ثم ابتكرت البرمجة البنيوية (Structured Programming) لتأمين مقاربة منظمة لهذه " الإجراءات " تسمح بمعالجة كميات ضخمة من البيانات .

      البرمجة البنيوية:-

      جوهر البرمجة البنيوية و باختصار شديد جدا هو مبدأ " فرق تسد " . فالمهمة المعقدة تنقسم إلى مجموعة من المهمات الأصغر إلى أن تصبح صغيرة كفاية و مستقلة كي تنجز بسهولة

      على سبيل المثال إن احتساب معدل أجر عامل في شركة ما قد تكون عملية مفقدة نوعا ما ، لذلك نقسمها إلى أجزاء صغيرة :-

      1. احتساب أجر كل عامل .

      2. تعداد العمال .

      3. جمع الأجور .

      4. تقسيم المجموع على عدد العمال .



      لكن عملية جمع الأجور يمكن تقسيمها إلى :-

      1. الحصول على سجل كل عامل.

      2. معرفة الأجر .

      3. إضافة افجر إلى المجموع العام .

      4. قراءة سجل العامل الثاني .



      و يمكننا الحصول على سحل العامل كما يلي:-

      1. فتح ملف العمال.

      2. الذهاب إلى السجل الصحيح .

      3. قراءة المعلومات من القرص .



      و هكذا نرى أن البرمجة البنيوية مسلك ناجح أما المشاكل المعقدة . علما أن مشاكل كثيرة ستعترضنا ، كلما أزداد حجم البيانات كلما صعب الفصل بين البيانات و المهمات التي تعالج هذه البيانات مما يعقد التنفيذ و التطوير ، لذلك تزداد عملية التقسيم صعوبة كلما تراكمت المهمات المجراه على البيانات .

      ابتكر المبرمجون الإجرائيون الذين يعتمدون أسلوب البرمجة الإجرائية (Procedural Programming) حلولا متطورة للمشاكل التقليدية ، لكن هذا عمليا ليس عمليا ، و لكأنهم يعيدون اخترع الدولاب . إن المرونة تعني بناء مقومات و ذات صفات واضحة يمكن توليفها في أي برنامج عند الحاجة .

      تصنيف الأشياء من حولنا

      تنقسم الأشياء في عالمان المحسوس إلى جماد و نبات و حيوانات . و تنقسم الحيوانات بدورها إلى برية و بحرية و برمائية و تنقسم النباتات إلى أقسما عديدة جدا لا مجال لذكرها هنا .

      و هكذا يتدرج علم الطبيعة في تقسيم الأشياء حتى يصل إلى أدق التفصيلات . فإذا أردنا أن نتحدث عن النسور مثلا ، فيكفي أن نقول أن النسر ينتمي إلى الطيور حتى نفهم أنه يرث من جني الطيور كل خصائصه ، و يبقى بعد ذلك الحديث عن الخصائص المميزة للنسر و التي تجعل منه نسرا ، و سلوكه المتفرد الذي يميزه عن بقية الطيور ، إن هذا التقسيم المبدئي لمكونات العالم المحسوس يغنينا تماما عن الخوض في التفصيلات المتكررة ، و يعفينا من مشقة أن نبدأ من الصفر عندما نتحدث عن كائن ما .

      و الاتجاه الجديد للبرمجة يحاول الاستعانة بهذا المنطق في حل مشكلات الحياة العملية حيث تقس الأشياء إلى فصائل (Classes) و تشترك أعضاء كل فصيلة في الصفات و السلوك . و يمكن للمبرمج أن يبني مكتبة من الفصائل (Class Library) أو يستعين بمكتبات جاهزة .

      و تحتوي الفصيلة على بيانات و كذلك على سلوك البيانات أو العمليات المنتظر إجراؤها عليها بحيث تشكل معا نمطا (Type) حيا من البينات . و يمكن للمبرمج أن يبتكر نمطا جديدا ، فالأطباق الطائرة مثلا تعبر نمطا جديدا من الطيور فهي تحمل خصائص فصيلة الطيور ، لكنها تحمل بعض الخصائص المتفردة التي تميزها عن النسر و الطائرة النفاثة . و المبرمج عندما يضيف نمطا جديدا ، فهو لا يبدأ من الصفر بل إنه يضيف فقط الخصائص الجدية إلى الخصائص الموروثة .

      فإذا تركنا الطيور و الأطباق الطائرة ، و هبطنا إلى عالم المشكلات اليومية و التي نستخدم الكمبيوتر لحلها ، فسوف نجد أن المشكلات كلها معروفا مقدما ، و أن مجهودات البرمجة موجهة أساسا إلى تعديل و تطوير أو بمعنى أدق إلى صيانة البرامج الموجودة أصلا .

      حيث تجد المبرمج التي يعتمد الأسلوب القديم في البرمجة (البرمجة الإجرائية) يقوم بكتابة النص من البداية و ذلك لعدم توفر النص البرمجي أو لأن المكتبة الحالية لا تقوم بما يرده تحديدا .

      إن الاتجاه الجديد في البرمجة و الذي يطلق عليه البرمجة الموجهة نحو الهدف (Object-Oriented Programming)) وقد بدأت لغة سي++ في تطبقيه مما جعل حياة أسهل للمبرمجين .



      مبادئ البرمجة غرضيه التوجيه

      لو تأمل ت الكزن لوجد أنه يتكون من فصيلة كبيرة أعضاؤها هي المادة (البيانات) و القوانين الطبيعية التي تتحكم في سلوك المادة (الدوال) . من هذه التوليفة الرائعة تنبع المعجزة الإلهية .

      و لو تأملت منجزات الإنسان على مر العصور ، أما ما سمينها بالاختراعات من تلفزيون و كمبيوتر و أقمار صناعية لوجدت أنها في الحقيقة ليست إلا استخداما منطقيا لخصائص الفصيلة المعجزة (( المادة و القوانين الطبيعية )) . إن الإنسان في حقيقة الأمر لم يخترع شيئا ، بل هو – بنعمة العقل – يجتهد في اكتشاف القوانين الطبيعية و استخداماها ، فالقانون الطبيعي التي تعمل بع الطائرة و تحلق به ، موجود أصلا قبل صناعة أي طائرة ، و قانون السباحة و الطفو موجود قبل صناعة السفن و الغواصات .

      بل أن قانون نسبية الزمن الذي ارتبطت صيغته الرياضية باسم البرت أنيشتين ، ليس اختراعا و لكنه اكتشافا لقانون طبيعي موجود من افصل . إنه إحدى خصائص هذه الفصيلة المعجزة التي خلقها الخالق .

      إن بداية كل اكتشاف ناجح أو ابتكار مفيد تبدأ بالتأمل في قوانين الطبيعة و محاولة فهمها و الاستفادة منها و محاكاتها .

      إن هذا بالتحديد ما فعله (( بايرن ستراوستراب )) عندما فكر في أن يبتكر أسلوبا جديد للبرمجة ، إنه أسلوب محاكاة القوانين الطبيعية .



      أخذ هذا الموضوع من :-

      1. تعلم سي ++ في 24 ساعة .

      2. سي ++ لغة البرمجة الحديثة (مهندس أسامة الحسيني)
    • السلام عليكم ورحمة الله وبركاته

      انا احد الطلبة العراقيين
      طلب مني بحث في الكية بعنوان الفرق بين البرمجة الاجرائية والبرمجة الوصفية
      بحثت في اغلب محركات البحث لكن لم اجد موضوع مفيد يمكن ان يقبل
      ارجو مساعدتي في كتابة الموضوع لاني محتاجه جدا علما بان اخر موعد لتسليم البحوث هو
      12/ 1 /2010
      شاكرا تعاونكم معي[B]

      [/B]