Java Recursive Tracing Java: Learn How to Trace a Method

  • Thread starter Thread starter Neon32
  • Start date Start date
  • Tags Tags
    Java tracing
AI Thread Summary
The discussion centers around understanding recursive tracing in a specific method called "mystery." Participants clarify that the method is recursive because it calls itself through "mystery(n-1)." One user expresses confusion about the recursive nature of the method, noting that they expected to see a direct call within the method. They share their attempts to trace the output of the method when inputting the number 6, detailing the partial output they received. Another participant suggests that running the code could provide clarity on its function, emphasizing the importance of seeing the output to understand recursion better. They also discuss the challenges of tracing recursive functions without a debugger, particularly in Java, and share their personal approach of using trial and error for understanding recursive methods. The conversation concludes with well-wishes for an upcoming exam.
Neon32
Messages
68
Reaction score
1
It would be much appreciated if you could show me how to do recursive tracing for this method.
upload_2017-4-4_22-1-2.png
 
Last edited:
Technology news on Phys.org
What's recursive in this method ?
Did you try typing it in and see what it does ?
Is this homework ?
 
BvU said:
What's recursive in this method ?
Did you try typing it in and see what it does ?
Is this homework ?

1) mystery(n-1) is recursive
2) No it isn't homework. I'm studying for my exam
 
Neon32 said:
1) mystery(n-1) is recursive
I see. Maybe I misunderstand 'recursive' : I then expect a call to 'mystery' inside the method. Don't see one, so your idea of recursive is something else. Can you explain ?
Must be blind. Sorry.
 
All I've left is question 2 :smile:
BvU said:
Did you try typing it in and see what it does ?
 
BvU said:
All I've left is question 2 :smile:

Yes I've tried to trace it and all I got was (6 + ((4 + ((2 + . I don't understand how to continue it.
 
I get
Code:
 ----- 6 ---------- 
(6 + ((4 + ((2 + ( 0 
 + 1)
)
 + 3)
)
 + 5)
)
 --------------------------
when I input the number 6 in :

Code:
Sub mist(n As Integer)

    If n / 2 = 0 Then
    
        Debug.Print n
    ElseIf n Mod 2 = 0 Then
        Debug.Print "(" & n & " + ";
        mist n - 1
        Debug.Print ")"
    Else
        Debug.Print "(";
        mist n - 1
        Debug.Print " + " & n & ")"
    End If
    
End Sub

Sub test()
Dim n As Integer
again:
    n = CInt(InputBox("Give n "))
    Debug.Print "  "
    Debug.Print " ----- " & n & " ---------- "
    If n < 0 Then Exit Sub
    Call mist(n)
    Debug.Print " -------------------------- "
    GoTo again
End Sub
 
Neon32 said:
1) mystery(n-1) is recursive
No. The mystery() function is recursive because it calls itself.

Neon32 said:
Yes I've tried to trace it and all I got was (6 + ((4 + ((2 + . I don't understand how to continue it.
BvU didn't ask about tracing the function; he asked if you had tried typing it in and running it. Seeing what the function produces might be helpful in understanding what it does.
 
I am not fluent in Java. I find 1 / 2 is integer division and yields zero, so in the context of Myst "if N/2==0" is equivalent to " if n= 1" in VB.
If I take that into account the 0 goes away.
(and if I add some ; at the end of the print statements it all ends up on one line:
Code:
 ----- 6 ----------
(6 + ((4 + ((2 +  1 ) + 3)) + 5))
 --------------------------

Wonder why your routine doesn't render the odd numbers ...
 
  • #10
Excel VBA is easy with its debugger at hand.
Don't know what Java has for you. If no debugger, then perhaps some more print statements ?
 
  • #11
There's a systematic way to find out the tracing for any recursive method like trees method or in a table or whatever. I want to know the method you used to find out the tracing not the final answer. My exam is in paper so I won't have jcreator or VBA during the exam xD
 
  • #12
Didn't know that; was just trying to help. My systematic method has always been trial and error :rolleyes: -- especially the latter.
Good luck with your exam !
 
  • #13
BvU said:
Didn't know that; was just trying to help. My systematic method has always been trial and error :rolleyes: -- especially the latter.
Good luck with your exam !
Thank you :).
 

Similar threads

Back
Top