مفهوم الدوال والإجراءات
تستخدم الدوال والإجراءات لتقسيم المشكلة إلى مهام صغيرة وواضحة، بحيث يؤدي كل جزء وظيفة محددة داخل الحل.
🧩 لماذا نستخدمها؟
عند تطبيق Top-Down قد نصل إلى مهام فرعية مستقلة نسبيًا. بدل وضع جميع الخطوات داخل حل واحد طويل، يمكن تنظيم كل مهمة في دالة أو إجراء باسم واضح، ثم استدعاؤها عند الحاجة. هذا يجعل الحل أسهل في الفهم والاختبار والتعديل وإعادة الاستخدام.
🧮 الدالة Function
التعريف: جزء من الحل ينفذ مهمة محددة ثم يعيد قيمة إلى الجزء الذي استدعاه.
مثال: دالة تستقبل ثلاث درجات، تحسب المتوسط، ثم تعيد قيمة المتوسط.
⚙️ الإجراء Procedure
التعريف: مجموعة خطوات تنفذ مهمة محددة، ويكون الهدف منها تنفيذ عمل معين دون اشتراط إرجاع قيمة.
مثال: إجراء يعرض تقرير المتدرب أو يطبع رسالة على الشاشة.
🔑 الفكرة التي تميز بينهما
اسأل سؤالًا واحدًا: هل أحتاج من الجزء الفرعي أن يعيد لي قيمة أستخدمها في حساب أو قرار لاحق؟ إذا كانت الإجابة نعم فنستخدم دالة. أما إذا كان المطلوب تنفيذ عمل مثل العرض أو الطباعة أو تسجيل بيانات دون الحاجة إلى قيمة راجعة، فنستخدم إجراء.
| وجه المقارنة | الدالة Function | الإجراء Procedure |
|---|---|---|
| ماذا تفعل؟ | تحسب أو تستخرج نتيجة محددة. | تنفذ مجموعة خطوات أو مهمة محددة. |
| هل تعيد نتيجة؟ | نعم، تعيد قيمة. | لا يشترط أن تعيد قيمة. |
| كيف أستخدمها بعد التنفيذ؟ | يمكن حفظ القيمة المعادة في متغير أو استخدامها في عملية أخرى. | نستفيد من العمل الذي نفذه الإجراء نفسه، مثل العرض أو الطباعة. |
| مثال واضح | احسب_المتوسط ← يعيد 85. | اطبع_التقرير ← يطبع التقرير على الشاشة. |
| سؤال يساعدني على الاختيار | «ما القيمة التي أريد الحصول عليها؟» | «ما العمل الذي أريد تنفيذه؟» |
🧮 مثال دالة
نرسل للدالة السعر والخصم، فتقوم بالحساب ثم تعيد السعر النهائي. يمكن بعد ذلك تخزين هذه القيمة أو طباعتها.
🖨️ مثال إجراء
نرسل الاسم والنتيجة إلى الإجراء، فيقوم بعرض التقرير. المطلوب هنا تنفيذ العرض نفسه وليس الحصول على قيمة جديدة.