0Pricing
C Academy · درس

الاستدعاء الذاتي في C

استكشفوا الدوال العودية، وافهموا حالات استخدامها، وحلّلوا الفرق بين الاستدعاء الذاتي والتكرار

الاستدعاء الذاتي في C درس مجاني في C Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C Academy 3 دروس في المجموع.

الاستدعاء الذاتي في C

الاستدعاء الذاتي في C

الاستدعاء الذاتي أسلوب تستدعي فيه الدالة نفسها لحل مشكلة.

في هذا الدرس، ستتعلم:

  • ما الاستدعاء الذاتي وكيف يعمل.
  • كيفية تنفيذ الدوال التي تستدعي نفسها.
  • الفرق بين الاستدعاء الذاتي والتكرار.
الاستدعاء الذاتي في C — رسم توضيحي 1

ما المقصود بالاستدعاء الذاتي؟

ما المقصود بالاستدعاء الذاتي؟

يحدث الاستدعاء الذاتي عندما تستدعي الدالة نفسها لحل جزء أصغر من المشكلة.

صيغة المثال:

void function() { function(); // Recursive call }

يجب أن تحتوي كل دالة تستدعي نفسها على حالة أساسية لمنع الاستدعاء الذاتي اللانهائي.

مثال: الاستدعاء الذاتي

مثال: الاستدعاء الذاتي

يوضح هذا البرنامج الاستدعاء الذاتي من خلال طباعة الأعداد من 5 إلى 1.

#include <stdio.h>

void countDown(int n) {
    if (n <= 0) return; // Base case
    printf("%d\n", n);
    countDown(n - 1); // Recursive call
}

int main() {
    countDown(5);
    return 0;
}

الحالة الأساسية في الاستدعاء الذاتي

الحالة الأساسية في الاستدعاء الذاتي

يجب أن تتضمن الدالة التي تستدعي نفسها حالة أساسية لإيقاف الاستدعاء الذاتي.

مثال:

if (n == 0) return;

من دون حالة أساسية، ستستدعي الدالة نفسها بلا نهاية، مما يؤدي إلى تجاوز سعة المكدس.

مثال: حساب المضروب باستخدام الاستدعاء الذاتي

مثال: حساب المضروب باستخدام الاستدعاء الذاتي

يحسب هذا البرنامج مضروب عدد باستخدام الاستدعاء الذاتي.

#include <stdio.h>

int factorial(int n) {
    if (n == 0) return 1; // Base case
    return n * factorial(n - 1);
}

int main() {
    printf("Factorial of 5: %d\n", factorial(5));
    return 0;
}

الاستدعاء الذاتي مقابل التكرار

الاستدعاء الذاتي مقابل التكرار

يمكن للاستدعاء الذاتي والتكرار (الحلقات) تحقيق النتائج نفسها، لكنهما يعملان بطريقة مختلفة.

الاختلافات:

  • يستخدم الاستدعاء الذاتي استدعاءات الدوال ويتطلب ذاكرة أكبر.
  • يستخدم التكرار الحلقات، ويكون أكثر كفاءة عمومًا.
  • يجعل الاستدعاء الذاتي التعليمات البرمجية أبسط في مسائل مثل اجتياز الأشجار.

مثال: متتالية فيبوناتشي (باستخدام الاستدعاء الذاتي)

مثال: متتالية فيبوناتشي (باستخدام الاستدعاء الذاتي)

يحسب هذا البرنامج متتالية فيبوناتشي باستخدام الاستدعاء الذاتي.

#include <stdio.h>

int fibonacci(int n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}

int main() {
    printf("Fibonacci(5): %d\n", fibonacci(5));
    return 0;
}

متى يُستخدم الاستدعاء الذاتي؟

متى يُستخدم الاستدعاء الذاتي؟

يكون الاستدعاء الذاتي مفيدًا في المسائل التي تتضمن:

  • اجتياز الشجرة.
  • التراجع (مثل حل المتاهات).
  • مسائل رياضية مثل حساب المضروب ومتتالية فيبوناتشي.

خلاصة

خلاصة

في هذا الدرس، تعلمتم:

  • ما هو الاستدعاء الذاتي وكيف يعمل.
  • أهمية الحالة الأساسية.
  • الفرق بين الاستدعاء الذاتي والتكرار.

بعد ذلك، سنستكشف المصفوفات والسلاسل النصية في C!

الاستدعاء الذاتي في C — رسم توضيحي 9

الأسئلة الشائعة

هل درس «الاستدعاء الذاتي في C» مجاني؟

نعم — نص درس «الاستدعاء الذاتي في C» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C Academy 3 دروس في المجموع.

ماذا ستتعلم في «الاستدعاء الذاتي في C»؟

استكشفوا الدوال العودية، وافهموا حالات استخدامها، وحلّلوا الفرق بين الاستدعاء الذاتي والتكرار تتمرن على C Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C Academy؟

لا تُشترط خبرة سابقة. C Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.

كم من الوقت يستغرق درس «الاستدعاء الذاتي في C»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C Academy هذا؟

نعم. كل درس في C Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعريف الدوال واستدعاؤها
  2. نماذج الدوال ونطاقها
  3. الاستدعاء الذاتي في C
← العودة إلى C Academy