Module: (بايثون) الروتينات الفرعية. العودية


Problem

1/12

العودية. ما هذا؟

Theory Click to read/hide

العودية قد يحتوي الإجراء أو الوظيفة على استدعاء لإجراء آخر ضمنه. بما في ذلك ، يمكن للروتين الفرعي استدعاء نفسه. في هذه الحالة ، لا يهتم الكمبيوتر. كما أنه ، كما هو الحال دائمًا ، ينفذ باستمرار الأوامر التي التقى بها من أعلى إلى أسفل.

إذا كنت تتذكر الرياضيات ، فهناك يمكنك التعرف على مبدأ الاستقراء الرياضي . وهي كالتالي:
بعض العبارات صحيحة لكل n طبيعية إذا
نبسب ؛ نبسب ؛ 1. صالح لـ & nbsp؛ n = 1 & nbsp؛ and
نبسب ؛ نبسب ؛ 2. من صحة البيان لأي تعسفي طبيعي n = k & nbsp ؛ يترتب على ذلك أنه صحيح لـ & nbsp؛ n = k + 1.

في البرمجة ، تسمى هذه التقنية العودية.
نبسب ؛
العودية هي طريقة لتحديد مجموعة من الكائنات من حيث المجموعة نفسها ، بناءً على حالات أساسية بسيطة.

التكرار هو إجراء (وظيفة) يستدعي نفسه مباشرة أو من خلال إجراءات ووظائف أخرى. نبسب ؛
مثال <قبل> def Rec (a): إذا (a & gt؛ 0): Rec (a-1) طباعة (أ)
من الناحية التخطيطية ، يمكن تمثيل عمل العودية بواسطة مخطط انسيابي
src =


يتم تنفيذ الإجراء Rec () مع المعلمة 3. ثم ، داخل الإجراء مع المعلمة 3 ، يتم استدعاء الإجراء مع المعلمة 2 ، وهكذا ، حتى يتم استدعاء الإجراء مع المعلمة 0. عندما يتم استدعاء الإجراء مع المعلمة 0 ، لن تحدث المكالمة العودية بعد الآن وسيؤدي الإجراء باستخدام المعلمة 0 إلى طباعة الرقم 0 والخروج. ثم يتم نقل التحكم مرة أخرى إلى الإجراء بالمعامل 1 ، كما أنه ينهي عمله بطباعة الرقم 1 ، وهكذا. قبل الإجراء مع المعلمة 3. نبسب ؛

يتم تخزين جميع الإجراءات التي تسمى في الذاكرة حتى يكملوا عملهم. يسمى عدد الإجراءات المتزامنة عمق العودية .
نبسب ؛

Problem

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