الحاسب الآلي · الصف الثالث الإعدادي · الترم الأول
حل المشكلة Problem Solving
مفهوم المشكلة وخصائصها، ولماذا نحتاج إلى منهج منظم لحل المشكلات، والخطوات العامة التي يتبعها أي إنسان أو حاسوب لحل مشكلة ما.
آخر تحديث: · كيف نراجع المحتوى
معلومات الدرس
- المادة: الحاسب الآلي — حل المشكلات وبرمجة VB.NET
- الترم: الأول
- الفصل: الفصل الأول: حل المشكلات — الموضوع: الأول
المحتوى الرئيسي
مفهوم المشكلة
المشكلة (Problem) هي أي موقف يواجهه الإنسان وتكون فيه هناك فجوة بين الوضع الحالي والوضع المطلوب (الهدف)، بحيث لا يوجد إجراء مباشر ومعروف مسبقًا للانتقال من الأول إلى الثاني. قد تكون المشكلة بسيطة من حياتنا اليومية (مثل: كيف أصل إلى المدرسة في أقصر وقت؟)، أو مشكلة حسابية (مثل: كيف أوجد أكبر عدد بين ثلاثة أعداد؟)، أو مشكلة برمجية يُراد لها حل باستخدام الحاسوب.
لماذا نحتاج إلى منهج لحل المشكلات؟
عند مواجهة مشكلة، قد يحاول البعض الوصول إلى الحل بطريقة عشوائية أو بالتجربة والخطأ، وهذا قد ينجح في المشكلات البسيطة جدًا، لكنه:
- يستهلك وقتًا وجهدًا كبيرين في المشكلات الأكبر.
- لا يضمن الوصول إلى حل صحيح أو أفضل حل.
- يصعب تحويله إلى برنامج حاسوبي، لأن الحاسوب لا يفهم إلا خطوات دقيقة ومحددة بالترتيب.
لذلك، يعتمد علم الحاسوب على منهج علمي منظم لحل المشكلات، بحيث تُحلَّل المشكلة وتُصمَّم لها خطوات حل واضحة قبل البدء في كتابة أي كود برمجي.
خصائص المشكلة القابلة للحل حاسوبيًّا
لكي تكون المشكلة مناسبة لحل حاسوبي، يجب أن تتوافر فيها عناصر أساسية:
- مدخلات (Input): البيانات المتاحة التي نبدأ منها.
- مخرجات (Output): النتيجة المطلوب الوصول إليها.
- خطوات معالجة محددة: إجراءات واضحة تربط بين المدخلات والمخرجات.
فمثلًا في مشكلة “إيجاد المتوسط الحسابي لثلاث درجات”: المدخلات هي الدرجات الثلاث، والمخرج هو قيمة المتوسط، والمعالجة هي عملية الجمع ثم القسمة على 3.
الخطوات العامة لحل أي مشكلة
بصرف النظر عن نوع المشكلة، يمكن اتباع خطوات عامة للوصول إلى حل منظم:
- تحديد المشكلة بدقة: فهم المطلوب فهمًا كاملًا قبل أي شيء آخر.
- جمع البيانات والمعلومات المتاحة (المدخلات).
- اقتراح حل أو أكثر (استراتيجية الحل).
- اختيار أنسب حل وتنفيذه خطوة بخطوة.
- اختبار الحل والتأكد من صحته.
هذه الخطوات العامة هي الأساس الذي تُبنى عليه مراحل حل المشكلة المتخصصة في مجال البرمجة، والتي سندرسها بالتفصيل في الموضوع التالي.
مثال توضيحي
المشكلة: كيف يمكن معرفة ما إذا كان عدد صحيح معين زوجيًّا أم فرديًّا؟
- تحديد المشكلة: نريد تصنيف عدد إلى (زوجي / فردي).
- المدخل: العدد الصحيح.
- المعالجة: قسمة العدد على 2، وفحص الباقي.
- المخرج: إذا كان الباقي يساوي صفرًا فالعدد زوجي، وإلا فهو فردي.
هذا المثال البسيط يوضح كيف يتحول التفكير في مشكلة يومية إلى خطوات منطقية دقيقة قابلة للتنفيذ لاحقًا بلغة برمجة مثل Visual Basic.NET.
النقاط الرئيسية
- المشكلة هي الفجوة بين الوضع الحالي والهدف المطلوب الوصول إليه.
- الحل العشوائي (التجربة والخطأ) غير مناسب للمشكلات المعقدة أو للحلول البرمجية.
- كل مشكلة قابلة للحل حاسوبيًّا تتكون من: مدخلات، مخرجات، وخطوات معالجة.
- الخطوات العامة لحل أي مشكلة: تحديد المشكلة، جمع البيانات، اقتراح الحل، تنفيذه، ثم اختباره.
- التفكير المنظم قبل البرمجة يوفر الوقت ويقلل الأخطاء.
أسئلة للمراجعة
- عرّف المشكلة (Problem) بأسلوبك الخاص.
- ما العناصر الثلاثة التي يجب توافرها في أي مشكلة قابلة للحل حاسوبيًّا؟
- لماذا لا يُفضَّل الاعتماد على أسلوب التجربة والخطأ في حل المشكلات البرمجية؟
- حدد المدخلات والمخرجات وخطوات المعالجة لمشكلة: “إيجاد أكبر عدد بين عددين صحيحين”.
- اذكر الخطوات العامة الخمس لحل أي مشكلة بترتيبها الصحيح.
الأهداف العامة
- أن يوضّح الطالب مفهوم المشكلة (Problem).
- أن يميّز الطالب بين المشكلة والحل غير المنظّم والحل المنهجي.
- أن يعدّد الطالب الخطوات العامة لحل أي مشكلة.
- أن يدرك الطالب أهمية التفكير المنظم قبل البدء في كتابة أي برنامج حاسوبي.