الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية تتبع برنامج المثود في recursive

بدأه يا ورد مين علمك تجرح في 3 أغسطس 2011 · 4 رد · 593 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
import javax.swing.*;

public class hom {

public static void main (String[] args) {

String s = JOptionPane.showInputDialog("please enter the number ");

int x = Integer.parseInt(s);


System.out.print(Func(x)) ;


}

 public static  int  Func (int x) {
if (x >20)
return x-10;

else
return Func( Func( x + 11) );



}}

لو بدي اتبع البرنامج لل العدد 3 و العدد 20 كيف اتبعو ..ممكن مساعده توضح التتبع ؟

شكرا جزيلا

#2

ما المشكلة بالضبط؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

الكود ما في مشكلة

أريد مراحل (خطوات ) اذا دخلت الرقم 3

كيف أتبعه ب في المتود recursive

#4

يمكنك تتبع ذلك يدوياً (بالمناسبة إذا كان العدد 20 أو أقل يكون الناتج 11 وإذا كان أكثر يكون الناتج نفس العدد ناقصاً 10)

/*
     *  Func(3)
     *  3 < 20 ==> Func(Func(14)) ==> Func(11) ==> 11
     * 
     *  Func(14)
     *  14 <= 20 ==> Func(Func(25)) ==> Func(15)
     *                                 15 <= 20 ==> Func(Func(26)) ==> Func(16)
     *                                                                16 <= 20 ==> Func(Func(27)) ==> Func(17)
     *                                                                                               17 <= 20 ==> Func(Func(28)) ==> Func(18)
     *                                                                                                                              18 <= 20 ==> Func(Func(29)) ==> Func(19)
     *                                                                                                                                                             19 <= 20 ==> Func(Func(30)) ==> Func(20)
     *                                                                                                                                                                                            20 <= 20 ==> Func(Func(31)) ==> Func(21)
     *                                                                                                                                                                                                                            21 > 20 ==> 11
     *  Func(11)
     *  11 <= 20 ==> Func(Func(22)) ==> Func(12)
     *                                  12 <= 20 ==> Func(Func(23)) ==> Func(13)
     *                                                                  13 <= 20 ==> Func(Func(24)) ==> Func(14)
     *                                                                                                  14 <= 20 ==> Func(Func(25)) ==> Func(15)
     *                                                                                                                                  15 <= 20 ==> Func(Func(26)) ==> Func(16)
     *                                                                                                                                                                  16 <= 20 ==> Func(Func(27)) ==> Func(17)
     *                                                                                                                                                                                                  17 <= 20 ==> Func(Func(28)) ==> Func(18)
     *                                                                                                                                                                                                                                  18 <= 20 ==> Func(Func(29)) ==> Func(19)
     *                                                                                                                                                                                                                                                                  19 <= 20 ==> Func(Func(30)) ==> Func(20)
     *                                                                                                                                                                                                                                                                                                  20 <= 20 ==> Func(Func(31)) ==> Func(21) ==> 11
     */

يمكنك اختصار الدالة بدون استخدام الـ recursion

public static int Func(int x)
{
    return x > 20 ? x - 10 : 11;
}

تم تعديل هذه المشاركة بواسطة Eng.Fouad في 3 أغسطس 2011 في 19:04

597657.png
#5

شكرا كتير و ربنا يجزيك الخير ..الحمد لله فهمت طريقة التتبع ....الهدف من السؤال أعرف كيف اتبع أي متود يكون recursive

:lol:

مواضيع مشابهة