التعليم السعودي

تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني

تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني
تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني
تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني
تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني
تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني

المناهج السعودية

تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني

المطلوب

أكتب دالة تستدعي نفسها, إسمها CountRecursively, تعطيها عدد صحيح أكبر من 0, فتقوم بطباعة جميع الأعداد الصحيحة الموجودة من هذا العدد وصولاً إلى 1 بشكل تنازلي.
في البرنامج, قم باستدعاء الدالة CountRecursively لتجربتها.

النتيجة المطلوبة

الخوارزمية

كود الجافا

  1. package recursion;
  2. public class Recursion {
  3. /* ——————————- هنا قمنا بتعريف الدالة —————————— */
  4.     public static int CountRecursively ( int counter ) {
  5.         if ( counter != 0 )
  6.         {
  7.             System.out.print(“counter = “ +counter+ “\n”);
  8.             return CountRecursively( counter – 1 );
  9.         }
  10.         return 0;
  11.     }
  12. /* ————————— من هنا يبدأ البرنامج بالتنفيذ ————————— */
  13.     public static void main (String[] args) {
  14.         CountRecursively(3);
  15.     }
  16. }

شرح الكود

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

 
المصدر: تعريف دوال تستدعي نفسها في الخوارزميات – التمرين الثاني – المناهج السعودية

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى