الدرس الخامس: الدوال في لغة C (Functions)
مرحبًا بك في الدرس الخامس من سلسلة تعلم لغة C. بعد أن تعلمنا الحلقات في الدرس السابق، الآن سنتعرف على مفهوم الدوال (Functions)، والتي تُعتبر حجر الأساس لتنظيم الكود وجعل البرامج أكثر قابلية للصيانة وإعادة الاستخدام.
ما هي الدوال في لغة C؟
الدالة هي مجموعة من الأوامر التي تنفذ مهمة محددة ويمكن استدعاؤها في أي مكان بالبرنامج عند الحاجة. باستخدام الدوال، يمكننا تجزئة البرنامج إلى وحدات صغيرة، مما يسهل القراءة، الفهم، والصيانة.
أهمية استخدام الدوال
- إعادة استخدام الكود: يمكن استدعاء نفس الدالة عدة مرات دون تكرار نفس الكود.
- تقسيم البرنامج: تسهل فهم البرنامج الكبير من خلال تقسيمه إلى أجزاء صغيرة.
- تسهيل الصيانة: تعديل الكود يكون مركزياً داخل الدالة.
- تسهيل التعاون: فرق البرمجة يمكنها العمل على دوال منفصلة بشكل مستقل.
هيكلية الدالة في لغة C
الدالة تتكون من: نوع الإرجاع، اسم الدالة، المعاملات (Parameters)، وجسم الدالة:
return_type function_name(parameter_list) {
// كود الدالة
}
- return_type: نوع البيانات التي تعيدها الدالة (مثل int، float، void إذا لم ترجع شيئًا).
- function_name: اسم يميز الدالة.
- parameter_list: قائمة المتغيرات التي تستقبلها الدالة (يمكن أن تكون فارغة).
- جسم الدالة: الأوامر التي تنفذ عند استدعاء الدالة.
مثال عملي على الدوال
#include <stdio.h>
// تعريف الدالة
void greet() {
printf("مرحبًا بك في تعلم لغة C!\\n");
}
int main() {
// استدعاء الدالة
greet();
greet(); // يمكن استدعاءها عدة مرات
return 0;
}
في المثال أعلاه:
void greet(): دالة لا تعيد قيمة.- يمكن استدعاء
greet()في أي مكان داخلmain(). - تطبع الدالة رسالة على الشاشة.
دوال بإرجاع قيمة
يمكن للدالة إعادة قيمة معينة باستخدام return:
#include <stdio.h>
int sum(int a, int b) {
return a + b;
}
int main() {
int result = sum(5, 10);
printf("المجموع: %d\\n", result);
return 0;
}
sumهي دالة تعيد قيمة عدد صحيح.- المعاملات
aوbتمثل الأرقام التي سيتم جمعها. - القيمة المرجعة يمكن تخزينها في متغير.
تمارين عملية للمبتدئين
- كتابة دالة لطباعة اسمك 5 مرات.
- كتابة دالة لحساب مساحة المستطيل.
- كتابة دالة لإيجاد أكبر عدد بين عددين.
- كتابة دالة لتحويل درجات الحرارة من مئوية إلى فهرنهايت.
- كتابة دالة تقبل عددًا صحيحًا وتطبع جدول الضرب لهذا الرقم.
الدوال مع المعاملات
الدوال يمكنها استقبال بيانات عند الاستدعاء:
#include <stdio.h>
void printSquare(int number) {
printf("مربع %d هو %d\\n", number, number * number);
}
int main() {
printSquare(4);
printSquare(7);
return 0;
}
دوال متعددة المعاملات وإرجاع القيمة
#include <stdio.h>
float multiply(float x, float y) {
return x * y;
}
int main() {
float result = multiply(3.5, 2.0);
printf("الناتج: %.2f\\n", result);
return 0;
}
مزايا استخدام الدوال
- تقليل تكرار الكود.
- تسهيل تعديل البرنامج مستقبلاً.
- إمكانية كتابة مكتبات وإعادة استخدامها في مشاريع مختلفة.
- تسهيل اختبار أجزاء البرنامج بشكل منفصل.
نصائح للمبتدئين
- ابدأ بكتابة دوال بسيطة.
- استخدم أسماء واضحة للدوال والمعاملات لتوضيح وظيفتها.
- جرب دوال بدون قيمة مرجعة ثم انتقل للدوال التي ترجع قيم.
- اقسم البرنامج إلى دوال صغيرة بدل كتابة كود طويل في main.
مشاريع صغيرة مقترحة
- برنامج آلة حاسبة باستخدام دوال الجمع، الطرح، الضرب والقسمة.
- برنامج لإيجاد المتوسط الحسابي لمجموعة درجات باستخدام دالة.
- برنامج للتحقق من الأعداد الأولية باستخدام دالة ترجع قيمة منطقية.
- برنامج لإيجاد أكبر وأصغر عدد بين مجموعة أعداد باستخدام دوال.