< previous page page_xxiii next page >

Page xxiii
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Testing and Debugging
305
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
The Loop Invariant
305
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Loop Testing Strategy
308
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Testing and Debugging Hints
311
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Summary
313
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Quick Check
314
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Exam Preparation Exercises
315
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Programming Warm-Up Exercises
318
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Programming Problems
319
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Case Study Follow-Up
321
7
Functions
323
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Top-Down Structured Design with Void Functions
324
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
When to Use Functions
325
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Writing Modules as Void Functions
325
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
An Overview of User-Defined Functions
329
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Flow of Control in Function Calls
329
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
May We Introduce: Charles Babbage
330
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Function Parameters
331
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Syntax and Semantics of Void Functions
334
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Function Call (Invocation)
334
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Function Declarations and Definitions
335
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Function Prototypes
336
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Function Definitions
337
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Local Variables
338
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
The Return Statement
339
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Matters of Style: Naming Void Functions
341
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Header Files
341
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Parameters
342
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Value Parameters
343
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Reference Parameters
344
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
An Analogy
348
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Matching Actual Parameters with Formal Parameters
349
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Theoretical Foundations: Parameter-Passing Mechanisms
351
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Designing Functions
352
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Writing Assertions as Program Comments
354
3e26ecb1b6ac508ae10a0e39d2fb98b2.gif
Matters of Style: Function Preconditions and Postconditions
356

 
< previous page page_xxiii next page >