 |
|
|
|
|
Testing and Debugging |
|
|
|
| |
 |
|
|
|
|
The Loop Invariant |
|
|
|
| |
 |
|
|
|
|
Loop Testing Strategy |
|
|
|
| |
 |
|
|
|
|
Testing and Debugging Hints |
|
|
|
| |
 |
|
|
|
|
Summary |
|
|
|
| |
 |
|
|
|
|
Quick Check |
|
|
|
| |
 |
|
|
|
|
Exam Preparation Exercises |
|
|
|
| |
 |
|
|
|
|
Programming Warm-Up Exercises |
|
|
|
| |
 |
|
|
|
|
Programming Problems |
|
|
|
| |
 |
|
|
|
|
Case Study Follow-Up |
|
|
|
| |
| |
 |
|
|
|
|
Top-Down Structured Design with Void Functions |
|
|
|
| |
 |
|
|
|
|
When to Use Functions |
|
|
|
| |
 |
|
|
|
|
Writing Modules as Void Functions |
|
|
|
| |
 |
|
|
|
|
An Overview of User-Defined Functions |
|
|
|
| |
 |
|
|
|
|
Flow of Control in Function Calls |
|
|
|
| |
 |
|
|
|
|
May We Introduce: Charles Babbage |
|
|
|
| |
 |
|
|
|
|
Function Parameters |
|
|
|
| |
 |
|
|
|
|
Syntax and Semantics of Void Functions |
|
|
|
| |
 |
|
|
|
|
Function Call (Invocation) |
|
|
|
| |
 |
|
|
|
|
Function Declarations and Definitions |
|
|
|
| |
 |
|
|
|
|
Function Prototypes |
|
|
|
| |
 |
|
|
|
|
Function Definitions |
|
|
|
| |
 |
|
|
|
|
Local Variables |
|
|
|
| |
 |
|
|
|
|
The Return Statement |
|
|
|
| |
 |
|
|
|
|
Matters of Style: Naming Void Functions |
|
|
|
| |
 |
|
|
|
|
Header Files |
|
|
|
| |
 |
|
|
|
|
Parameters |
|
|
|
| |
 |
|
|
|
|
Value Parameters |
|
|
|
| |
 |
|
|
|
|
Reference Parameters |
|
|
|
| |
 |
|
|
|
|
An Analogy |
|
|
|
| |
 |
|
|
|
|
Matching Actual Parameters with Formal Parameters |
|
|
|
| |
 |
|
|
|
|
Theoretical Foundations: Parameter-Passing Mechanisms |
|
|
|
| |
 |
|
|
|
|
Designing Functions |
|
|
|
| |
 |
|
|
|
|
Writing Assertions as Program Comments |
|
|
|
| |
 |
|
|
|
|
Matters of Style: Function Preconditions and Postconditions |
|
|
|
| |