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


Problem

2/10

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

Theory Click to read/hide

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

Problem

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