CPS 151 B In-class Assignment 3 + + 80% 1 / 2 2022-09-08 Self-tracing recursive methods (functions) In class we looked at having a recursive method trace itself to show the calls being made and the values being returned from each call (with appropriate indentation). Your task is to add this capability to a recursive function calculating Fibonacci numbers. We can add a parameter to a recursive function to tell it what its depth of recursion is. The top level call is at depth (or level) 0. When a function executing at level k calls itself, that function call is at level k + 1. The trace messages are written to the standard output with an indentation proportional to the call level. I have given an example adding the self-tracing feature to a function computing n! (n factorial). See RecFact.java posted on Isidore. You are also provided with the code for a method computing the Fibonacci numbers. Your task is to modify the Fibonacci number computing program to add the self-tracing feature. See how it was done for the factorial function, and do the same for the Fibonacci function. Note: Do not forget to have your name as comments in the Java source code. You should also edit the output identification line at the beginning of the main method to include your name. Submit the source code and screen shot in one document as before. Show the results for 5 as the input (as in the sample output). Note: Each function entry message should show the value of the parameter n. Each function exit message should show the value of the parameter n, and the value of the function being returned, again suitably indented. Note: Both recursive calls within the code for function fib (with arguments n-1 and n-2) are made at the same recursion level (recursion depth) and it is 1 more than the level at function entry. Sample output from the finished program follows: unor Output - ICA03_KEY (run) X A D CPS 151 In-class assignment 3 by Enter n: 5 Entering fib: n = 5 Entering fib: n = 4 Entering fib: n = 3 Entering fib: n = 2 Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Entering fib: n = 0 Exiting fib: n = 0 return value = 0 Exiting fib: n = 2 return value = 1 Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Exiting fib: n = 3 return value = 2 Entering fib: n = 2 Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Entering fib: n = 0 Exiting fib: n = 0 return value - 0 Exiting fib: n = 2 return value = 1 Exiting fib: n = 4 return value - 3 Entering fib: n = 3 Entering fib: n = 2 KEY Entering fib: n = 1 Exiting fib: n = 1 return value Entering fib: n = 0 Exiting fib: n = 0 return value = 0 1 Exiting fib: n 2 return value Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Exiting fib: n = 3 return value = 2 Exiting fib: n = 5 return value = 5 fib (5) = 5 w Sater CPS 151 In-class assignment 3 complete BUILD SUCCESSFUL (total time: 11 seconds) X

Oh no! Our experts couldn't answer your question.

Don't worry! We won't leave you hanging. Plus, we're giving you back one question for the inconvenience.

Submit your question and receive a step-by-step explanation from our experts in as fast as 30 minutes.
You have no more questions left.
Message from our expert:
Our experts need more information to provide you with a solution. Please resubmit your question, making sure it's detailed and complete. We've credited a question to your account.
Your Question:

Java code is giving:

 final static Scanner cin = new Scanner(System.in); public static void main(String[] args) { out.println("CPS 151 In-class assignment 3 by ___ your name here ___\n"); out.print("Enter n: "); int n = cin.nextInt(); long f = fib(n); out.println("\nfib(" + n + ") = " + f); out.println("\nCPS 151 In-class assignment 3 complete"); } // end main // standard fibonacci number computation using recursion static long fib(int n) { if (n < 0) terminate("Negative argument value not allowed, program ended"); if (n <= 1) return n; else return fib(n - 1) + fib (n - 2); } // end fib private static void indent(int level) { for(int Lcv = 1; Lcv <= level; Lcv++) out.print(" "); } // end indent private static void terminate(String errorMessage) { out.println(errorMessage); System.exit(1); } // end terminate

CPS 151
B
In-class Assignment 3
+ + 80%
1 / 2
2022-09-08
Self-tracing recursive methods (functions)
In class we looked at having a recursive method trace itself to show the calls being made and the values being returned
from each call (with appropriate indentation). Your task is to add this capability to a recursive function calculating
Fibonacci numbers.
We can add a parameter to a recursive function to tell it what its depth of recursion is. The top level call is at depth (or
level) 0. When a function executing at level k calls itself, that function call is at level k + 1. The trace messages are
written to the standard output with an indentation proportional to the call level.
I have given an example adding the self-tracing feature to a function computing n! (n factorial). See RecFact.java posted
on Isidore. You are also provided with the code for a method computing the Fibonacci numbers.
Your task is to modify the Fibonacci number computing program to add the self-tracing feature. See how it was done for
the factorial function, and do the same for the Fibonacci function.
Note: Do not forget to have your name as comments in the Java source code. You should also edit the output
identification line at the beginning of the main method to include your name.
Submit the source code and screen shot in one document as before.
Show the results for 5 as the input (as in the sample output).
Note: Each function entry message should show the value of the parameter n. Each function exit message should show
the value of the parameter n, and the value of the function being returned, again suitably indented.
Note: Both recursive calls within the code for function fib (with arguments n-1 and n-2) are made at the same recursion
level (recursion depth) and it is 1 more than the level at function entry.
Transcribed Image Text:CPS 151 B In-class Assignment 3 + + 80% 1 / 2 2022-09-08 Self-tracing recursive methods (functions) In class we looked at having a recursive method trace itself to show the calls being made and the values being returned from each call (with appropriate indentation). Your task is to add this capability to a recursive function calculating Fibonacci numbers. We can add a parameter to a recursive function to tell it what its depth of recursion is. The top level call is at depth (or level) 0. When a function executing at level k calls itself, that function call is at level k + 1. The trace messages are written to the standard output with an indentation proportional to the call level. I have given an example adding the self-tracing feature to a function computing n! (n factorial). See RecFact.java posted on Isidore. You are also provided with the code for a method computing the Fibonacci numbers. Your task is to modify the Fibonacci number computing program to add the self-tracing feature. See how it was done for the factorial function, and do the same for the Fibonacci function. Note: Do not forget to have your name as comments in the Java source code. You should also edit the output identification line at the beginning of the main method to include your name. Submit the source code and screen shot in one document as before. Show the results for 5 as the input (as in the sample output). Note: Each function entry message should show the value of the parameter n. Each function exit message should show the value of the parameter n, and the value of the function being returned, again suitably indented. Note: Both recursive calls within the code for function fib (with arguments n-1 and n-2) are made at the same recursion level (recursion depth) and it is 1 more than the level at function entry.
Sample output from the finished program follows:
unor
Output - ICA03_KEY (run) X
A
D
CPS 151 In-class assignment 3 by
Enter n: 5
Entering fib: n = 5
Entering fib: n = 4
Entering fib: n = 3
Entering fib: n = 2
Entering fib: n = 1
Exiting fib: n = 1 return value = 1
Entering fib: n = 0
Exiting fib: n = 0 return value = 0
Exiting fib: n = 2 return value = 1
Entering fib: n = 1
Exiting fib: n = 1 return value = 1
Exiting fib: n = 3 return value = 2
Entering fib: n = 2
Entering fib: n = 1
Exiting fib: n = 1 return value = 1
Entering fib: n = 0
Exiting fib: n = 0 return value - 0
Exiting fib: n = 2 return value = 1
Exiting fib: n = 4 return value - 3
Entering fib: n = 3
Entering fib: n = 2
KEY
Entering fib: n = 1
Exiting fib: n = 1 return value
Entering fib: n = 0
Exiting fib: n = 0 return value = 0
1
Exiting fib: n 2 return value
Entering fib: n = 1
Exiting fib: n = 1 return value = 1
Exiting fib: n = 3 return value = 2
Exiting fib: n = 5 return value = 5
fib (5) = 5
w
Sater
CPS 151 In-class assignment 3 complete
BUILD SUCCESSFUL (total time: 11 seconds)
X
Transcribed Image Text:Sample output from the finished program follows: unor Output - ICA03_KEY (run) X A D CPS 151 In-class assignment 3 by Enter n: 5 Entering fib: n = 5 Entering fib: n = 4 Entering fib: n = 3 Entering fib: n = 2 Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Entering fib: n = 0 Exiting fib: n = 0 return value = 0 Exiting fib: n = 2 return value = 1 Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Exiting fib: n = 3 return value = 2 Entering fib: n = 2 Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Entering fib: n = 0 Exiting fib: n = 0 return value - 0 Exiting fib: n = 2 return value = 1 Exiting fib: n = 4 return value - 3 Entering fib: n = 3 Entering fib: n = 2 KEY Entering fib: n = 1 Exiting fib: n = 1 return value Entering fib: n = 0 Exiting fib: n = 0 return value = 0 1 Exiting fib: n 2 return value Entering fib: n = 1 Exiting fib: n = 1 return value = 1 Exiting fib: n = 3 return value = 2 Exiting fib: n = 5 return value = 5 fib (5) = 5 w Sater CPS 151 In-class assignment 3 complete BUILD SUCCESSFUL (total time: 11 seconds) X
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY