0 تصويتات
منذ في تصنيف أسئلة تعليمية بواسطة

ما الاختلافات بين التكرار والاستدعاء الذاتي؟

الإجابة الصحيحة من خلال موقع بوابة الإجابات هي:

التكرار: •سريع التنفيذ. •يتطلب حجم ذاكرة أقل. •حجم المقطع البرمجي أكبر •ينتهي باستكمال العدد المحدد من التكرارات أو تحقيق شرط معيَّن الاستدعاء الذاتي: •بطيء التنفيذ مقارنة بالتكرار. •يتطلب حجم ذاكرة أكبر. •حجم المقطع البرمجي أصغر. •ينتهي بمجرد الوصول إلى الحالة الأساسية.

## الاختلافات بين التكرار والاستدعاء الذاتي

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

1. التكرار (Iteration):

  • كيف يعمل؟ التكرار يعتمد على استخدام حلقات (مثل `for` أو `while`) لتنفيذ مجموعة من التعليمات بشكل متكرر. الحلقة تستمر في الدوران حتى يتحقق شرط معين للتوقف.
  • السرعة: التكرار أسرع في التنفيذ بشكل عام، لأنه لا يتطلب إنشاء استدعاءات دالة جديدة في كل مرة.
  • الذاكرة: يستهلك التكرار ذاكرة أقل، لأنه يستخدم مجموعة محدودة من المتغيرات لتتبع حالة الحلقة.
  • حجم الكود: عادةً ما يكون الكود المكتوب باستخدام التكرار أطول وأكبر حجمًا، خاصةً للمهام المعقدة.
  • الإنهاء: ينتهي التكرار عندما يتم استكمال العدد المحدد من التكرارات (في حالة `for`) أو عندما يصبح شرط التوقف صحيحًا (في حالة `while`).

مثال (حساب مضروب العدد باستخدام التكرار):

```python
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
```

2. الاستدعاء الذاتي (Recursion):

  • كيف يعمل؟ الاستدعاء الذاتي هو تقنية تقوم فيها الدالة باستدعاء نفسها داخل تعريفها. يجب أن تحتوي الدالة على "حالة أساسية" (Base Case) وهي الشرط الذي يوقف الاستدعاءات الذاتية، وإلا ستستمر الدالة في استدعاء نفسها إلى ما لا نهاية (مما يؤدي إلى خطأ).
  • السرعة: الاستدعاء الذاتي أبطأ من التكرار، لأن كل استدعاء للدالة يضيف طبقة جديدة إلى "مكدس الاستدعاءات" (Call Stack)، مما يستغرق وقتًا إضافيًا.
  • الذاكرة: يستهلك الاستدعاء الذاتي ذاكرة أكبر، لأن كل استدعاء للدالة يحتاج إلى تخصيص مساحة في الذاكرة لتخزين المتغيرات المحلية ومعلومات الاستدعاء.
  • حجم الكود: غالبًا ما يكون الكود المكتوب باستخدام الاستدعاء الذاتي أقصر وأكثر أناقة، خاصةً للمشاكل التي يمكن تعريفها بشكل طبيعي باستخدام الاستدعاء الذاتي (مثل حساب مضروب العدد أو البحث في هياكل البيانات الشجرية).
  • الإنهاء: ينتهي الاستدعاء الذاتي بمجرد الوصول إلى الحالة الأساسية، والتي تحدد متى يجب أن تتوقف الدالة عن استدعاء نفسها.

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

```python
def factorial_recursive(n):
if n == 0: # الحالة الأساسية
return 1
else:
return n * factorial_recursive(n-1)
```

ملخص سريع:

| الميزة | التكرار (Iteration) | الاستدعاء الذاتي (Recursion) |
|--------------|----------------------|-----------------------------|
| السرعة | أسرع | أبطأ |
| الذاكرة | أقل | أكبر |
| حجم الكود | أكبر | أصغر |
| طريقة التنفيذ | حلقات | استدعاء الدالة لنفسها |
| الإنهاء | شرط التوقف | الحالة الأساسية |

اذا كان لديك إجابة افضل او هناك خطأ في الإجابة علي سؤال ما الاختلافات بين التكرار والاستدعاء الذاتي اترك تعليق فورآ.

1 إجابة وحدة

0 تصويتات
منذ بواسطة
 
أفضل إجابة
سوف تجد إجابة سؤال ما الاختلافات بين التكرار والاستدعاء الذاتي بالأعلى.

أسئلة مشابهة

مرحباً بك في بوابة الإجابات ، المصدر الرائد للتعليم والمساعدة في حل الأسئلة والكتب الدراسية، نحن هنا لدعمك في تحقيق أعلى مستويات التعليم والتفوق الأكاديمي، نهدف إلى توفير إجابات شاملة لسؤالك

التصنيفات

...