الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد شرح recursive

مغلق
بدأه hussain79_02 في 24 مارس 2003 · 3 رد · 8,824 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخوتي الاعزاء

اني أجد صعوبة في فهم درس recursive و أرجو منكم المساعدة بشرح واف لي و حبذا لو تم تطعيمه بالأمثلة المكتوبة بلغة سي و ليس سي ++

وشكرا

#2

اخي الكريم

ال 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 :)

#3

هذه بعض الامثله

// 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);
}
#4

كل ما عليك هو دراسه هذه الامثله والتمرن عليها :)

ومن بعدها سوف تفهمها إن شاء الله

هذا الموضوع مغلق.

مواضيع مشابهة