Upload
abraham-richards
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
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:
Computer Science: A Structured Programming Approach Using C 2
FORMULA 6-1 Iterative Factorial Definition
Computer Science: A Structured Programming Approach Using C 3
FORMULA 6-2 Recursive Factorial Definition
Computer Science: A Structured Programming Approach Using C 4
FIGURE 6-25 Factorial (3) Recursively
Computer Science: A Structured Programming Approach Using C 5
PROGRAM 6-24 Iterative Factorial Function
Computer Science: A Structured Programming Approach Using C 6
PROGRAM 6-25 Recursive Factorial Function
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
Computer Science: A Structured Programming Approach Using C 8
FIGURE 6-26 Calling a Recursive Function
Computer Science: A Structured Programming Approach Using C 9
FIGURE 6-27 Fibonacci Numbers
Computer Science: A Structured Programming Approach Using C 10
PROGRAM 6-26 Recursive Fibonacci
Computer Science: A Structured Programming Approach Using C 11
PROGRAM 6-26 Recursive Fibonacci
Computer Science: A Structured Programming Approach Using C 12
PROGRAM 6-26 Recursive Fibonacci
Computer Science: A Structured Programming Approach Using C 13
Table 6-2 Fibonacci Run Time
Computer Science: A Structured Programming Approach Using C 14
FIGURE 6-28 Towers of Hanoi—Start Position
Computer Science: A Structured Programming Approach Using C 15
FIGURE 6-29 Towers Solution for Two Disks
Computer Science: A Structured Programming Approach Using C 16
FIGURE 6-30 Towers of Hanoi Solution for Three Disks (Part I)
Computer Science: A Structured Programming Approach Using C 17
FIGURE 6-30 Towers of Hanoi Solution for Three Disks (Part II)
Computer Science: A Structured Programming Approach Using C 18
PROGRAM 6-27 Towers of Hanoi
Computer Science: A Structured Programming Approach Using C 19
PROGRAM 6-27 Towers of Hanoi
Computer Science: A Structured Programming Approach Using C 20
Table 6-3 Tracing of Program 6-27, Towers of Hanoi
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.
Computer Science: A Structured Programming Approach Using C 22
PROGRAM 6-28 The Complete Calculator
Computer Science: A Structured Programming Approach Using C 23
PROGRAM 6-28 The Complete Calculator
Computer Science: A Structured Programming Approach Using C 24
PROGRAM 6-28 The Complete Calculator
Computer Science: A Structured Programming Approach Using C 25
PROGRAM 6-28 The Complete Calculator
Computer Science: A Structured Programming Approach Using C 26
PROGRAM 6-28 The Complete Calculator
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:
Computer Science: A Structured Programming Approach Using C 28
FIGURE 6-31 Structure Chart Symbols for Loops
Computer Science: A Structured Programming Approach Using C 29
FIGURE 6-32 Structure Chart for Process
Computer Science: A Structured Programming Approach Using C 30
Table 6-4 Analysis of Multiply / Divide Loops
Computer Science: A Structured Programming Approach Using C 31
Table 6-5 Measures of Efficiency