السلام عليكم اخوتي الاعزاء
اني أجد صعوبة في فهم درس recursive و أرجو منكم المساعدة بشرح واف لي و حبذا لو تم تطعيمه بالأمثلة المكتوبة بلغة سي و ليس سي ++
وشكرا
السلام عليكم اخوتي الاعزاء
اني أجد صعوبة في فهم درس recursive و أرجو منكم المساعدة بشرح واف لي و حبذا لو تم تطعيمه بالأمثلة المكتوبة بلغة سي و ليس سي ++
وشكرا
اخي الكريم
ال recursive هي عباره عن داله تنادي نفسها
وهيه تقريبا مشابه لل Loop statments
ويمكن تحويل داله recursive الى iterative وهو ال loop
ويمكن كذلك العكس تحولي ال iterative الى resursive
لنبدأ بالمثال الاول وهو عباره عن factorial العدد
لنفرض نريد factorial العدد 3 وهو عباره عن حاصل ضرب 3*2*1
سوف اكتب دالتين لحل هذا المثال
داله باستخدام iterative وهي loop statment
وداله اخرى وهيه recursive
الداله الاولى وهي iterative
int fact_loop(int n) {int i, fact=1;
if (n :)
هذه بعض الامثله
// cumpute the sum of n,n-1,...,0 by using recursion function
#include
int sum(int);
int main() {
int n, result;
printf("Enter number: ");
scanf("%d", &n);
result = sum(n);
printf("The sum of the number is: %dn", result);
return (0);
}
int sum(int n) {
if (n == 0)
return (0);
return (n+sum(n-1));
}// Power recursive function
// الاسس
#include
int pow(int, int);
int main() {
int base, exponent, power;
printf("Enter Base: ");
scanf("%d", &base);
printf("Enter Exponent: ");
scanf("%d", &exponent);
power = pow(base, exponent);
printf("The power is: %dn", power);
return (0);
}
int pow(int base, int exponent) {
if (exponent == 1)
return (base);
return (base* pow(base, exponent-1));
}// compute the Fibonacci by using recursion function
#include
int fib(int);
int main() {
int a, n;
printf("Enter number: ");
scanf("%d", &n);
a = fib(n);
printf("The FIB number is: %dn", a);
return (0);
}
int fib(int n) {
if (n < 0)
return (-1);
if (n < 2)
return (n);
return (fib(n-1) + fib(n-2));
}/* Main Recursion */
#include
int main() {
static int count = 1;
printf("%dn", count);
count++;
if (count <= 10)
return main();
return (0);
}كل ما عليك هو دراسه هذه الامثله والتمرن عليها :)
ومن بعدها سوف تفهمها إن شاء الله
هذا الموضوع مغلق.