6-9 recursion
DESCRIPTION
6-9 Recursion. In general, programmers use two approaches to writing repetitive algorithms. One approach uses loops; the other uses recursion. Recursion is a repetitive process in which a function calls itself. Topics discussed in this section:. Iterative and Recursive Definition - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/1.jpg)
Computer Science: A Structured Programming Approach Using C 1
6-9 Recursion
In general, programmers use two approaches to In general, programmers use two approaches to writing repetitive algorithms. One approach uses writing repetitive algorithms. One approach uses loops; the other uses recursion. Recursion is a loops; the other uses recursion. Recursion is a repetitive process in which a function calls itself.repetitive process in which a function calls itself.
Iterative and Recursive DefinitionIterative and Recursive SolutionDesigning Recursive FunctionsFibonacci NumbersLimitations of RecursionThe Towers Of Hanoi
Topics discussed in this section:Topics discussed in this section:
![Page 2: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/2.jpg)
Computer Science: A Structured Programming Approach Using C 2
FORMULA 6-1 Iterative Factorial Definition
![Page 3: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/3.jpg)
Computer Science: A Structured Programming Approach Using C 3
FORMULA 6-2 Recursive Factorial Definition
![Page 4: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/4.jpg)
Computer Science: A Structured Programming Approach Using C 4
FIGURE 6-25 Factorial (3) Recursively
![Page 5: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/5.jpg)
Computer Science: A Structured Programming Approach Using C 5
PROGRAM 6-24 Iterative Factorial Function
![Page 6: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/6.jpg)
Computer Science: A Structured Programming Approach Using C 6
PROGRAM 6-25 Recursive Factorial Function
![Page 7: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/7.jpg)
Computer Science: A Structured Programming Approach Using C 7
Every recursive call must either solve part of the problemor reduce the size of the problem.
NoteNote
![Page 8: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/8.jpg)
Computer Science: A Structured Programming Approach Using C 8
FIGURE 6-26 Calling a Recursive Function
![Page 9: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/9.jpg)
Computer Science: A Structured Programming Approach Using C 9
FIGURE 6-27 Fibonacci Numbers
![Page 10: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/10.jpg)
Computer Science: A Structured Programming Approach Using C 10
PROGRAM 6-26 Recursive Fibonacci
![Page 11: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/11.jpg)
Computer Science: A Structured Programming Approach Using C 11
PROGRAM 6-26 Recursive Fibonacci
![Page 12: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/12.jpg)
Computer Science: A Structured Programming Approach Using C 12
PROGRAM 6-26 Recursive Fibonacci
![Page 13: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/13.jpg)
Computer Science: A Structured Programming Approach Using C 13
Table 6-2 Fibonacci Run Time
![Page 14: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/14.jpg)
Computer Science: A Structured Programming Approach Using C 14
FIGURE 6-28 Towers of Hanoi—Start Position
![Page 15: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/15.jpg)
Computer Science: A Structured Programming Approach Using C 15
FIGURE 6-29 Towers Solution for Two Disks
![Page 16: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/16.jpg)
Computer Science: A Structured Programming Approach Using C 16
FIGURE 6-30 Towers of Hanoi Solution for Three Disks (Part I)
![Page 17: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/17.jpg)
Computer Science: A Structured Programming Approach Using C 17
FIGURE 6-30 Towers of Hanoi Solution for Three Disks (Part II)
![Page 18: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/18.jpg)
Computer Science: A Structured Programming Approach Using C 18
PROGRAM 6-27 Towers of Hanoi
![Page 19: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/19.jpg)
Computer Science: A Structured Programming Approach Using C 19
PROGRAM 6-27 Towers of Hanoi
![Page 20: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/20.jpg)
Computer Science: A Structured Programming Approach Using C 20
Table 6-3 Tracing of Program 6-27, Towers of Hanoi
![Page 21: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/21.jpg)
Computer Science: A Structured Programming Approach Using C 21
6-10 Programming Example— The Calculator ProgramLet’s look at our calculator program one more time. In Let’s look at our calculator program one more time. In Chapter 5, we gave users the capability of selecting Chapter 5, we gave users the capability of selecting one of four options: add, subtract, multiply, or divide. one of four options: add, subtract, multiply, or divide. However, if users needed to make two calculations, However, if users needed to make two calculations, they had to run the program twice. We now add a loop they had to run the program twice. We now add a loop that allows users to make as many calculations as that allows users to make as many calculations as needed. needed.
![Page 22: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/22.jpg)
Computer Science: A Structured Programming Approach Using C 22
PROGRAM 6-28 The Complete Calculator
![Page 23: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/23.jpg)
Computer Science: A Structured Programming Approach Using C 23
PROGRAM 6-28 The Complete Calculator
![Page 24: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/24.jpg)
Computer Science: A Structured Programming Approach Using C 24
PROGRAM 6-28 The Complete Calculator
![Page 25: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/25.jpg)
Computer Science: A Structured Programming Approach Using C 25
PROGRAM 6-28 The Complete Calculator
![Page 26: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/26.jpg)
Computer Science: A Structured Programming Approach Using C 26
PROGRAM 6-28 The Complete Calculator
![Page 27: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/27.jpg)
Computer Science: A Structured Programming Approach Using C 27
6-11 Software Engineering
In this section, we discuss some software engineering In this section, we discuss some software engineering issues related to loops. issues related to loops.
Loops in Structure ChartsDetermining Algorithm EfficiencyLinear LoopsLogarithmic LoopsNested LoopsBig-O NotationStandard Measures of Efficiency
Topics discussed in this section:Topics discussed in this section:
![Page 28: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/28.jpg)
Computer Science: A Structured Programming Approach Using C 28
FIGURE 6-31 Structure Chart Symbols for Loops
![Page 29: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/29.jpg)
Computer Science: A Structured Programming Approach Using C 29
FIGURE 6-32 Structure Chart for Process
![Page 30: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/30.jpg)
Computer Science: A Structured Programming Approach Using C 30
Table 6-4 Analysis of Multiply / Divide Loops
![Page 31: 6-9 Recursion](https://reader036.vdocuments.us/reader036/viewer/2022062517/56812cfc550346895d91ce9f/html5/thumbnails/31.jpg)
Computer Science: A Structured Programming Approach Using C 31
Table 6-5 Measures of Efficiency