القائمة الرئيسية

الصفحات

 العودية هي عملية تكرار العناصر بطريقة مشابهة للذات. في لغات البرمجة ، إذا سمح لك أحد البرامج باستدعاء وظيفة داخل نفس الوظيفة ، فيُطلق عليها استدعاء متكرر للوظيفة.

void recursion() {
   recursion(); /* function calls itself */
}

int main() {
   recursion();
}

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

تعد الدوال التكرارية مفيدة جدًا في حل العديد من المشكلات الرياضية ، مثل حساب عاملي الرقم ، وتوليد سلسلة فيبوناتشي ، إلخ.

عامل رقم

يحسب المثال التالي مضروب رقم معين باستخدام دالة تكرارية -


#include <stdio.h>

unsigned long long int factorial(unsigned int i) {

   if(i <= 1) {
      return 1;
   }
   return i * factorial(i - 1);
}

int  main() {
   int i = 12;
   printf("Factorial of %d is %d\n", i, factorial(i));
   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنها تنتج النتيجة التالية -

Factorial of 12 is 479001600

سلسلة فيبوناتشي

المثال التالي يولد سلسلة فيبوناتشي لرقم معين باستخدام دالة تكرارية -


#include <stdio.h>

int fibonacci(int i) {

   if(i == 0) {
      return 0;
   }
	
   if(i == 1) {
      return 1;
   }
   return fibonacci(i-1) + fibonacci(i-2);
}

int  main() {

   int i;
	
   for (i = 0; i < 10; i++) {
      printf("%d\t\n", fibonacci(i));
   }
	
   return 0;
}

عندما يتم تجميع التعليمات البرمجية أعلاه وتنفيذها ، فإنها تنتج النتيجة التالية -

0	
1	
1	
2	
3	
5	
8	
13	
21	
34
الصفحة التالية                                                                             الصفحة السابقة  
هل اعجبك الموضوع :

تعليقات