مقدمة حول البرمجة بلغة C: الدوال الأساسية
في هذا الدرس المخصص لتلاميذ السنة الأولى ثانوي (شعب علمية)، نقدم لكم شرحاً مفصلاً وشاملاً لـ الدوال الأساسية في لغة C وفق المنهاج الجزائري للبكالوريا. الدوال (Functions) هي وحدات برمجية مستقلة تؤدي مهمة محددة، وتعتبر من أهم مفاهيم البرمجة المهيكلة (Structured Programming). تساعد الدوال على تقسيم البرنامج إلى أجزاء صغيرة قابلة للإدارة وإعادة الاستخدام. لغة C هي لغة برمجة إجرائية قوية ومنتشرة، وهي أساسية في منهاج الإعلام الآلي للشعب العلمية في الجزائر. هذا الدرس مهم جداً في مادة الإعلام الآلي للبكالوريا.
أولاً: المفاهيم الأساسية
الدالة (Function) هي مجموعة من الأوامر المنظمة التي تؤدي مهمة محددة. كل برنامج C يحتوي على دالة رئيسية واحدة على الأقل هي main(). تنقسم الدوال إلى نوعين: دوال مكتبية جاهزة (printf, scanf, sqrt, strlen) ودوال معرفة من قبل المستخدم (User-defined Functions). تركيب الدالة: نوع القيمة الراجعة (return type)، اسم الدالة، المعاملات (parameters) بين قوسين، جسم الدالة بين { }. الدوال قد ترجع قيمة (return value) أو لا ترجع قيمة (void). تمرير المعاملات يكون بالقيمة (pass by value) أو بالمؤشر (pass by pointer). نطاق المتغيرات (Scope): المتغيرات المحلية (Local) داخل الدالة، المتغيرات العامة (Global) خارج جميع الدوال.
ثانياً: الشرح التفصيلي
نبدأ بشرح تركيب الدالة وأجزائها: التصريح (Declaration/Prototype)، التعريف (Definition)، الاستدعاء (Call). نشرح كيفية تعريف دالة بسيطة ترجع مجموع عددين، ثم دالة لا ترجع قيمة وتطبع رسالة. ننتقل إلى تمرير المعاملات: بالقيمة (يتم نسخ القيمة) وبالمؤشر (يتم تمرير عنوان المتغير). نتعلم الفرق بين المتغيرات المحلية والعامة والثابتة (Static). نناقش مفهوم التوابع العودية (Recursive Functions) كتطبيق متقدم. نقدم أمثلة من امتحانات البكالوريا السابقة. يمكنكم مراجعة درس الخوارزميات: المصفوفات للمزيد.
ثالثاً: المفاهيم الأساسية
- تركيب الدالة: return_type function_name(parameters) { body }
- التصريح: int sum(int a, int b);
- التعريف: int sum(int a, int b) { return a + b; }
- الاستدعاء: int result = sum(5, 3);
- تمرير بالقيمة: int func(int x) { x = 10; } // لا تؤثر على المتغير الأصلي
- تمرير بمؤشر: int func(int *x) { *x = 10; } // تؤثر على المتغير الأصلي
- دالة void: void printMsg() { printf(“Hello”); } // لا ترجع قيمة
- المتغيرات المحلية: تُعرف داخل الدالة وتكون مرئية فقط داخلها
- المتغيرات العامة: تُعرف خارج جميع الدوال ومرئية في كل مكان
رابعاً: أمثلة بكالوريا
- مثال 1: اكتب دالة في لغة C تستقبل عدداً صحيحاً وترجع 1 إذا كان زوجياً و 0 إذا كان فردياً.
- مثال 2: اكتب دالة تستقبل مصفوفة من الأعداد الصحيحة وحجمها، وترجع مجموع عناصرها.
- مثال 3: اكتب دالة عودية (Recursive) لحساب عاملي عدد (Factorial) n!.
خامساً: تمارين
- اكتب دالة تستقبل عددين وتطبع أكبرهما (دون استخدام if).
- اكتب دالة تستقبل نصف قطر دائرة وترجع مساحتها ومحيطها (باستخدام المؤشرات).
- اكتب دالة للتحقق مما إذا كان عدد أولياً أم لا.
- اكتب دالة عودية لحساب حد n من متتالية فيبوناتشي.
- مسألة بكالوريا: برنامج كامل باستخدام الدوال لإدارة مصفوفة.
نصائح للبكالوريا
- لا تنس كتابة التصريح (Prototype) قبل الدالة main() أو تعريف الدالة قبل استدعائها.
- تأكد من توافق نوع القيمة الراجعة مع return statement.
- في التمرير بالمؤشر: استخدم & عند تمرير المتغير و * داخل الدالة.
- الدوال تجعل البرنامج أكثر تنظيماً وقابلية للقراءة وإعادة الاستخدام.
- اختبر كل دالة على حدة قبل دمجها في البرنامج الكامل.
الخلاصة
الدوال في لغة C هي أساس البرمجة المهيكلة. إتقان كتابة الدوال واستخدامها (تمرير المعاملات، إرجاع القيم، النطاق) ضروري لاجتياز امتحان البكالوريا في الإعلام الآلي.
الإعلام الآلي — البرمجة بلغة C: الدوال الأساسية — السنة الأولى ثانوي (شعب علمية) — بكالوريا.
? دروس مشابهة
- الإعلام الآلي — الخوارزميات: المصفوفات (جداول البيانات) — الأولى ثانوي (شعب علمية) — بكالوريا
- الإعلام الآلي — الخوارزميات: هيكل الاختيار — الأولى ثانوي (شعب علمية) — بكالوريا
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.