يستعرض لكم موقعنا مرافئ افض الشروحات للمناهج الجامعية في جميع المجالات والتخصصات :
الخـوارزمـيـات واستراتيجيات حل المسائل.
يستخدم الحاسوب اليوم في جميع المجالات، ويساعد في حل مختلف المشاكل في مختلف المجالات، لكنه في الحقيقة يعتبر عبارة عن أداة يطوعها الإنسان لحل المشاكل أو المسائل التي قد تواجهه في أي مجال، وذلك وفق استراتيجية معدة سلفا تساعد على حل المسألة أو المشكلة. ويمكن القول بأن عمل الحاسوب يقتصر فقط على تنفيذ التعليمات المعدة مسبقا من قبل المبرمج ، فالحاسوب ليس له القدرة على التفكير والتحليل وتمييز الصواب من الخطأ مثلنا نحن البشر لذا فإن صحة النتائج من عدمها تعتمد في الأساس على صحة الخطة المعدة لحل مشكلة ما فإذا كانت خطة العمل المعدة لحل مشكلة ما صحيحة فالنتائج ستكون أيضا صحيحة ما لم فالنتائج ستكون خاطئة. لا علاقة للحاسوب بصحة النتائج من عدمها فهو فقط آلة يطوعها الإنسان ويلقمها تعليمات يقوم بتنفيذها بطريقة تسلسلية كما وردت. يلعب الحاسوب دورا محوريا هاما في تنفيذه للأعمال بالغة التعقيد حيث تنفذ بدقة عالية وسرعة فائقة، لكنه رغم كل ذلك لا يستطيع عمل شيء ما لم يكن هناك استراتيجية لخطة عمل معدة مسبقا من المبرمج.
2.1 استراتيجيات حل المسائل.
برغم أن الحاسب الآلي يتميز بقدرته على إنجاز العمليات الحسابية حسب الأوامر والتعليمات المعطاة لـه بسرعة فائقة وبدقة متناهية إضافة لقدرته على حفظ المعلومات الكثيرة والمختلفة وكذا سهولة استرجاعها. لكنه في الحقيقة رغم كل ذلك يعجز الحاسب الآلي بأن يقوم بشكل ذاتي بحل أي مسألة مهما كانت بسيطة، أي أن عمله ينحصر في إنجاز الحلول للمسائل التي تبرمج له مسبقا ويشكل صحيح
يتوافق مع الأسس العلمية الصحيحة التي تعتمد عليها هذه الحلول. لذا لأنه عند استخدام الحاسب الالي لحل مشكلة ما مهما كبر شئن هذه المشكلة أو صغر لا بد من جـود استراتيجية تساعد على الحل . استراتيجية تساعدنا في تلقين الحاسوب الأوامر الصحيحة للحصول على النتائج الصحيحة. تتمثل المراحل الأساسية في حل المسائل في ضرورة
- معرفة المسألة وتحليلها .
- وضع تصميم مناسب للحل
- اختبار الحل
- توثيق الحل.
أولا: معرفة المسألة وتحليلها.
المقصود بمعرفة المسألة هو ضرورة فهما، بحيث تصبح معروفة ومفهومة بصورة واضحة وبدون أي غموض، أما تحليل المسألة فالمقصود به وضع طريقة بهدف الوصول إلى حل صحيح في مرحلة التحليل يمكن استخدام قوانين وطرق رياضية تناسب في حل هذه المسألة وفي معظم الأحيان قد تحتاج أيضا إلى تطوير هذه القوانين والطرق
لكي تناسب الحل، وعند التحليل يجب تحديد طبيعة البيانات المدخلة وتحديد نوعها وتنظيم إدخالها إلى الحاسب الألى، طبيعة المخرجات ( النتائج) وتنظيم كتابتها ، طرق الحل المناسبة وتقييمها بما يتلاءم مع كيفية تنفيذها بالحاسب الآلي، وعلى ضوء ذلك يتم اختيار الحل الأفضل.
فهم المسألة المراد حلها فهما جيدا، بحيث يمكن تعريف الافتراضات التي يمكن وضعها والافتراضات غير الممكنة، وذلك بهدف اختبار الحل على النحو الملائم.
ولفهم معنى التحليل نأخذ المسألة التالية:
كتابة برنامج لمعرفة الطلاب الناجحين في امتحان القبـول فـي قسـم علـوم الحاسوب، يتقدم الطلاب لامتحان ثلاث مواد هي مادة الرياضيات والفيزياء واللغة
الإنجليزية، العلامة الكاملة لكل من هذه المواد هي منـة درجة (100)، ويكون
الطالب ناجحا إذا كان مجموع درجاته خمسون (50) وما فوق، وإلا فيعتبر راسبا في هذه المادة، يجتاز الطالب الامتحان في حال نجاحه في الثلاث المواد. الأرقام التي ينبغي إدخالها بعين الاعتبار
تبدو المسألة واضحة نسبيا حين تأخذ وفيما يلي بعض الافتراضات الأساسية
- تقدم للامتحان عشرة طلاب فقط،
- يتوجب إدخال العلامات كأرقام صحيحة Integers ،
- . لا يمكن إدخال أرقام سالبة،
- لا يمكن إدخال رقم يتجاوز 100 ،
- ينبغي إدخال ثلاثة أرقام فقط لكل طالب(بحكم وجود ثلاث مواد ).
لفهم المسألة تماماً ، لا بد من القيام بتحليل شامل للوضع. ولدى انتهاء التحليل،
يصبح بالإمكان صياغة تعريف كامل بالمسألة.
هذا التحليل يساعد في الإجابة على عدة تساؤلات، مثلا:
- هل تستحق المسألة الحل، أم أنها غير قابلة للحل؟
- هل بالإمكان حل المسألة باستخدام الحاسوب؟
- ما هي اللغة البرمجية التي ينبغي استخدامها؟
- ما هو نمط معطيات الدخل والخرج؟
- ما هي كمية المعطيات التي يتوجب معالجتها؟
ثانيا: وضع التصميم المناسب.
عند معرفة متطلبات البرنامج نحتاج لتحديد الخطوط الرئيسية للبرنامج، والتوصل إلى هذه المتطلبات. هناك العديد من الأساليب المستخدمة في وضع التصاميم التفصيلية للبرنامج من الأساليب المستخدمة في تصميم البرنامج:
- الخوارزميات،
- المخططات التدفقية أو المخططات الانسيابية (مخطط سير العملياتFlowchart).
- التصميم الهيكلي، كالتصميم من القمة إلى القاعدة.
كل هذه الأساليب الشائعة الاستخدام تستخدم لوصف حلول المسائل ، وخاصة عند القيام بالبرمجة بلغات عالية المستوى.