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


Problem

2/8

العودية. محاكاة الدورة

Theory Click to read/hide

لقد رأينا أن العودية هي التنفيذ المتكرر للتعليمات الواردة في روتين فرعي. وهذا بدوره يشبه عمل الدورة. هناك لغات برمجة يكون فيها بناء الحلقة غائبًا على الإطلاق ، على سبيل المثال ، Prolog. & nbsp؛
لنحاول محاكاة عملية حلقة for. & nbsp؛
تحتوي الحلقة for على متغير عداد الخطوة. في روتين فرعي متكرر ، يمكن تمرير مثل هذا المتغير كمعامل. <قبل> // LoopImitation () مع معلمتين // المعلمة الأولى & ndash؛ عداد الخطوة ، المعلمة الثانية & ndash ؛ العدد الإجمالي للخطوات LoopImitation (i، n: عدد صحيح) ؛ يبدأ نبسب ؛ نبسب ؛ writeln (& # 39 ؛ Hello N & # 39 ؛، i) ؛ // العامل المراد تكراره لأي قيمة لـ i نبسب ؛ نبسب ؛ إذا كنت & lt ؛ n ثم // حتى يصبح عداد الحلقة مساويًا للقيمة n ، نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ LoopImitation (i + 1، n) ؛ // استدعاء مثيل جديد من الإجراء ، مع المعلمة i + 1 (الانتقال إلى القيمة التالية i) نهاية؛

Problem

ادرس البرنامج أدناه وقم بإصدار استدعاء إجراء مع المعلمات i = 1 ، n = 10 في البرنامج الرئيسي <قبل> // LoopImitation () مع معلمتين // المعلمة الأولى & ndash؛ عداد الخطوة ، المعلمة الثانية & ndash ؛ العدد الإجمالي للخطوات LoopImitation (i، n: عدد صحيح) ؛ يبدأ نبسب ؛ نبسب ؛ writeln (& # 39 ؛ Hello N & # 39 ؛، i) ؛ // العامل المراد تكراره لأي قيمة لـ i نبسب ؛ نبسب ؛ إذا كنت & lt ؛ n ثم // حتى يصبح عداد الحلقة مساويًا للقيمة n ، نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ LoopImitation (i + 1، n) ؛ // استدعاء مثيل جديد من الإجراء ، مع المعلمة i + 1 (الانتقال إلى القيمة التالية i) نهاية؛ يبدأ نبسب ؛ نبسب ؛ // هنا من الضروري إصدار استدعاء إجراء مع المعلمات i = 1 ، n = 10 نهاية.