طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 101 · تركيب البيانات والخوارزميات
تقييم الدرس 5

العودية

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 5: العودية. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ماذا يطبع البرنامج؟
main.py
def s(n):    if n == 0:        return 0    return n + s(n - 1)print(s(4))
2) ماذا يطبع البرنامج؟
main.py
def f(n):    if n == 0:        return    print(n)    f(n - 1)f(3)
3) ما المشكلة في الدالة؟
main.py
def f(n):    if n == 0:        return 1    return n * f(n)
4) حالة التوقف المناسبة لمجموع عناصر قائمة:
5) ماذا تُرجع الدالة إن نُسي return قبل الاستدعاء العودي؟

2السؤال الثاني: صح أم خطأ

1) كل حل عودي يمكن كتابته بحلقة.
الصواب: صح
2) العودية لا تحتاج حالة توقف إن كانت المسألة صغيرة.
الصواب: خطأ
3) آخر استدعاء عودي هو أول من يُرجع نتيجته.
الصواب: صح
4) العودية أسرع دائمًا من الحلقة.
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) أصغر مسألة نعرف جوابها مباشرة تسمى .
الإجابة: حالة التوقف
2) الخطأ عند تجاوز عمق العودية المسموح: .
الإجابة: RecursionError
3) الاستدعاءات المنتظرة تُحفظ في .
الإجابة: مكدس الاستدعاءات

4السؤال الرابع: أسئلة عملية

1) ما ناتج البرنامج؟

main.py
def power(x, n):    if n == 0:        return 1    return x * power(x, n - 1) print(power(3, 4))
الناتج الصحيح:
Shell×
81

2) ما ناتج البرنامج؟

main.py
def total(a):    if not a:        return 0    return a[0] + total(a[1:]) print(total([5, 10, 20]))
الناتج الصحيح:
Shell×
35
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس