Module: الإجراءات الفرعية. العودية


Problem

1/12

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

Theory Click to read/hide

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

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

في البرمجة ، هذه التقنية تسمى العودية.

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

التكرار هو إجراء (وظيفة) تستدعي نفسها مباشرة أو من خلال إجراءات ووظائف أخرى.
مثال على إجراء تكراري:

تسجيل باطل (int a)
{
نبسب ؛ إذا (a & gt؛ 0) {Rec (a-1) ؛ }
نبسب ؛ Console.WriteLine (أ) ؛
}

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

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

Problem

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