مقدمة
في الدرس السابق تعرفنا على مفهوم الدوال (Functions)، وعرفنا أنها تساعد على تنظيم البرامج وتقليل تكرار الكود.
لكن فهم فكرة الدوال لا يكفي، بل يجب أن نتعلم كيف ننشئها، وكيف نجعل البرنامج يستخدمها في الوقت المناسب.
في هذا الدرس سنتعرف على كيفية إنشاء الدوال واستدعائها في C++، وسنفهم كيف ينتقل البرنامج إلى الدالة لتنفيذها ثم يعود لمتابعة تنفيذ بقية الأوامر.
---
ما المقصود بإنشاء الدالة؟
إنشاء الدالة يعني كتابة مجموعة من التعليمات داخل جزء مستقل من البرنامج، ثم إعطاؤها اسمًا يعبر عن المهمة التي تقوم بها.
بعد إنشاء الدالة تصبح جاهزة للاستخدام، لكنها لا تعمل تلقائيًا، بل تنتظر حتى يطلب البرنامج تنفيذها.
ولهذا فإن إنشاء الدالة يختلف عن تشغيلها.
---
ما المقصود باستدعاء الدالة؟
استدعاء الدالة يعني أن يطلب البرنامج تنفيذ التعليمات الموجودة داخلها.
فعندما يصل البرنامج إلى مكان استدعاء الدالة، ينتقل إليها، وينفذ جميع الأوامر الموجودة بداخلها، ثم يعود إلى المكان الذي استدعاها منه ليكمل تنفيذ بقية البرنامج.
وهذا يساعد على تنظيم سير تنفيذ التعليمات.
---
لماذا نفصل بين إنشاء الدالة واستدعائها؟
لو كانت الدالة تعمل بمجرد إنشائها، فلن يستطيع المبرمج التحكم في وقت تنفيذها.
أما عند الفصل بين إنشاء الدالة واستدعائها، فيمكن تشغيلها في أي وقت يحتاج إليها البرنامج، كما يمكن استخدامها مرات عديدة دون إعادة كتابة التعليمات.
ولهذا تعد الدوال من أهم وسائل تنظيم البرامج.
---
ماذا يحدث عند استدعاء الدالة؟
عند استدعاء الدالة، يقوم البرنامج بالخطوات التالية:
- ينتقل إلى مكان الدالة.
- ينفذ جميع التعليمات الموجودة داخلها.
- بعد انتهاء التنفيذ يعود إلى مكان الاستدعاء.
- يكمل تنفيذ بقية أوامر البرنامج.
وتحدث هذه العملية بسرعة كبيرة أثناء تشغيل البرنامج.
---
هل يمكن استدعاء الدالة أكثر من مرة؟
نعم.
وهذه من أهم مزايا الدوال.
يمكن إنشاء الدالة مرة واحدة فقط، ثم استدعاؤها في أي مكان داخل البرنامج كلما احتجنا إلى تنفيذ المهمة نفسها.
وهذا يقلل من تكرار الكود، ويسهل صيانة البرنامج وتطويره.
---
أهمية إنشاء الدوال في مشاريع C++
في مشاريع C++ الكبيرة قد يحتوي البرنامج على عدد كبير من الدوال.
فقد توجد دالة لمعالجة البيانات، وأخرى للتعامل مع الملفات، وثالثة لتنفيذ العمليات الحسابية، ورابعة للتواصل مع أجزاء أخرى من البرنامج.
وبذلك يصبح المشروع أكثر تنظيمًا، ويكون من السهل تطوير كل جزء بشكل مستقل.
---
كيف تساعد الدوال على تنظيم البرنامج؟
عند تقسيم البرنامج إلى دوال، تصبح كل دالة مسؤولة عن مهمة واحدة فقط.
وهذا يجعل الكود أكثر وضوحًا، ويسهل اكتشاف الأخطاء، كما يساعد على تطوير المشروع دون التأثير على بقية الأجزاء.
ولهذا تعتمد معظم البرامج الاحترافية على هذا الأسلوب.
---
أخطاء شائعة عند المبتدئين
من الأخطاء التي يقع فيها المبتدئون:
- الاعتقاد أن إنشاء الدالة يعني تنفيذها مباشرة.
- نسيان استدعاء الدالة بعد إنشائها.
- إنشاء عدة دوال تؤدي المهمة نفسها دون حاجة.
- اختيار أسماء غير واضحة لا تعبر عن وظيفة الدالة.
لذلك يفضل دائمًا إنشاء دالة لكل مهمة محددة، واختيار اسم واضح يصف وظيفتها.
---
ملخص الدرس
تعرفنا في هذا الدرس على كيفية إنشاء الدوال واستدعائها في C++، وعرفنا أن إنشاء الدالة يختلف عن تنفيذها، وأن البرنامج لا ينفذها إلا عند استدعائها. كما تعلمنا كيف ينتقل البرنامج إلى الدالة ثم يعود لإكمال تنفيذ بقية التعليمات، وأهمية ذلك في تنظيم البرامج.
في الدرس الرابع عشر سنتعرف على معاملات الدوال (Parameters) والقيم المرسلة إليها (Arguments)، وسنفهم كيف نجعل الدوال تستقبل بيانات مختلفة وتتعامل معها.



