التعليم السعودي
تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني
جدول المحتويات
تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني
المطلوب
أكتب دالة تستدعي نفسها, إسمها CountRecursively
, تعطيها عدد صحيح أكبر من 0, فتقوم بطباعة جميع الأعداد الصحيحة الموجودة من هذا العدد وصولاً إلى 1 بشكل تنازلي.
في البرنامج, قم باستدعاء الدالة CountRecursively
لتجربتها.
كود الجافا
- package recursion;
- public class Recursion {
- /* ——————————- هنا قمنا بتعريف الدالة —————————— */
- public static int CountRecursively ( int counter ) {
- if ( counter != 0 )
- {
- System.out.print(“counter = “ +counter+ “\n”);
- return CountRecursively( counter – 1 );
- }
- return 0;
- }
- /* ————————— من هنا يبدأ البرنامج بالتنفيذ ————————— */
- public static void main (String[] args) {
- CountRecursively(3);
- }
- }
شرح الكود
- public static int CountRecursively ( int counter ) {
- if ( counter != 0 )
- {
- System.out.print(“counter = “ +counter+ “\n”);
- return CountRecursively( counter – 1 );
- }
- return 0;
- }
-
- هنا أنشأنا الدالة
countRecursively()
و حددنا أن نوعهاint
و وضعنا لها الباراميترcounter
و نوعهint
أيضاً. - إذاً, عند إستدعاء هذه الدالة يجب أن نمرر لها أي عدد من النوع
int
- المتغير
counter
سيمثل العداد الذي يحدد كم مرة ستقوم الدالة باستدعاء نفسها حيث أنه سيتم إنقاص 1 من قيمته كلما استدعت الدالة نفسها. - الشرط الموضوع فيها يعني أنه إذا لم تكن قيمة المتغير
counter
تساوي 0, سيتم عرض قيمة المتغيرcounter
, ثم إستدعاء الدالة من جديد مع إنقاص 1 من قيمة المتغيرcounter
- إذاً هذه الدالة تستمر في إستدعاء نفسها طالما أن قيمة المتغير
counter
لا تساوي 0 بعد. - في الأخير و بعد أن تتوقف الدالة عن إستدعاء نفسها, سيتم إرجاع القيمة 0 إلى الدالة
main()
حيث تم إستدعاءها من الأساس. - ملاحظة: لو لم نضع الأمر
return 0;
في نهاية الدالة, كان سيظهر لك خطأ في البرنامج و السبب أن نوع الدالة في الأساسint
, إذاً يجب أن ترجع أي قيمة نوعهاint
إلى المكان الذي تم استدعائها منه حتى لا يحدث خطأ.
- هنا أنشأنا الدالة
- public static void main (String[] args) {
- CountRecursively(3);
- }
- هنا قمنا باستدعاء الدالة
CountRecursively()
و مررنا لها القيمة 3. - إذاً أول قيمة للعداد
counter
ستكون 3, و آخر قيمة له ستكون 0.
المصدر: تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني – المناهج السعودية