الوحدة الخامسة: الطريقة الهيكلية Top-Down لحل المشاكل وطرق التحكم في سير الخطوات
↩ العودة للمقرر

مفهوم الدوال والإجراءات

تستخدم الدوال والإجراءات لتقسيم المشكلة إلى مهام صغيرة وواضحة، بحيث يؤدي كل جزء وظيفة محددة داخل الحل.

ƒتقسيم الحل

🧩 لماذا نستخدمها؟

عند تطبيق Top-Down قد نصل إلى مهام فرعية مستقلة نسبيًا. بدل وضع جميع الخطوات داخل حل واحد طويل، يمكن تنظيم كل مهمة في دالة أو إجراء باسم واضح، ثم استدعاؤها عند الحاجة. هذا يجعل الحل أسهل في الفهم والاختبار والتعديل وإعادة الاستخدام.

🧮 الدالة Function

التعريف: جزء من الحل ينفذ مهمة محددة ثم يعيد قيمة إلى الجزء الذي استدعاه.

مثال: دالة تستقبل ثلاث درجات، تحسب المتوسط، ثم تعيد قيمة المتوسط.

احسب_المتوسط(الدرجات) ← قيمة المتوسط

⚙️ الإجراء Procedure

التعريف: مجموعة خطوات تنفذ مهمة محددة، ويكون الهدف منها تنفيذ عمل معين دون اشتراط إرجاع قيمة.

مثال: إجراء يعرض تقرير المتدرب أو يطبع رسالة على الشاشة.

اعرض_التقرير(الاسم، المتوسط)
الفرق بين الدالة والإجراء

🔑 الفكرة التي تميز بينهما

اسأل سؤالًا واحدًا: هل أحتاج من الجزء الفرعي أن يعيد لي قيمة أستخدمها في حساب أو قرار لاحق؟ إذا كانت الإجابة نعم فنستخدم دالة. أما إذا كان المطلوب تنفيذ عمل مثل العرض أو الطباعة أو تسجيل بيانات دون الحاجة إلى قيمة راجعة، فنستخدم إجراء.

وجه المقارنةالدالة Functionالإجراء Procedure
ماذا تفعل؟تحسب أو تستخرج نتيجة محددة.تنفذ مجموعة خطوات أو مهمة محددة.
هل تعيد نتيجة؟نعم، تعيد قيمة.لا يشترط أن تعيد قيمة.
كيف أستخدمها بعد التنفيذ؟يمكن حفظ القيمة المعادة في متغير أو استخدامها في عملية أخرى.نستفيد من العمل الذي نفذه الإجراء نفسه، مثل العرض أو الطباعة.
مثال واضحاحسب_المتوسط ← يعيد 85.اطبع_التقرير ← يطبع التقرير على الشاشة.
سؤال يساعدني على الاختيار«ما القيمة التي أريد الحصول عليها؟»«ما العمل الذي أريد تنفيذه؟»

🧮 مثال دالة

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

السعر_النهائي ← احسب_الخصم(السعر، النسبة)

🖨️ مثال إجراء

نرسل الاسم والنتيجة إلى الإجراء، فيقوم بعرض التقرير. المطلوب هنا تنفيذ العرض نفسه وليس الحصول على قيمة جديدة.

اعرض_التقرير(الاسم، النتيجة)
مثال متكامل: نظام نتيجة متدرب
نظام نتيجة المتدرب
إدخال الدرجات
إجراء لقراءة البيانات
حساب المتوسط
دالة تعيد المتوسط
عرض النتيجة
إجراء يعرض التقرير
1استدعاء الدالةترسل إليها القيم التي تحتاجها.
2تنفيذ الحسابتنفذ الدالة خطواتها الداخلية.
3إرجاع النتيجةتعيد الدالة قيمة مثل المتوسط.
ملاحظة للمذاكرة: الفرق التعليمي الأساسي هنا أن الدالة تعيد قيمة، بينما الإجراء ينفذ مهمة دون اشتراط إرجاع قيمة. قد تختلف المصطلحات أو طريقة الصياغة بين لغات البرمجة، لكن هذا هو المفهوم المقصود في هذه الوحدة.
السابقالدوال والإجراءاتالتالي