(

*Each Chapter concludes with "Common Programming Errors" and a "Chapter Review."*)

**1. Overview of Computers and Software.** Computer Components.

Computer Software.

Computing for Engineers.

The Software Development Method.

Applying the Software Development Method.

*Case Study: Converting Miles to Kilometers.*

**2. Overview of C.**

C Language Elements.

Variable Declarations and Data Types.

Executable Statements.

General Form of a C Programs.

*Case Study: Finding the Area and Circumference of a Circle.*

Formatting Numbers in Program Output.

Interactive Mode, Batch Mode, and Data Files.

**3. Data Types, Operators, and Simple Functions.**

Representation of Data Types.

Arithmetic Expressions.

Extending a Problem Solution.

*Case Study: Quality Control in Manufacturing Flat Washers.*

Functions Implementing Additional Operators.

Simple User-Defined Functions

**4. Selection Structures: if and switch Statements.**

Control Structures.

Conditions.

The if Statement.

if Statements with Compound Statements.

Nested if Statements and Multiple-Alternative Decisions.

Decision Steps in Algorithms.

*Case Study: Computing Compass Bearings.*

The switch Statement.

**5. Repetition and Loop Statements.**

Repetition in Programs: Using Loops to Solve Problems.

Counting Loops and the while Statement.

Computing a Sum or a Product in a Loop.

The for Statement.

Conditional Loops.

Loop Design.

Nested Control Structures.

The do-while Statement and Flag-Controlled Loops.

Problem Solving Illustrated.

*Case Study: Computing Radiation Levels.*

How to Debug and Test Programs.

**6. Modular Programming.**

Functions with Input Arguments.

Problem Solving with Top-Down Design.

*Case Study: Finding Prime Numbers.*

Functions Output Parameters Implemented with Pointers.

Introduction to Scope of Names.

Formal Output Parameters as Actual Arguments.

Recursive Functions.

*Case Study: Bisection Method for Finding Roots.*

Top-Down Design Illustrated.

*Case Study: Performing Arithmetic Operations on Common Fractions.*

Debugging and Testing a Program System.

**7. Arrays.**

Declaring and Referencing Arrays.

Array Subscripts.

Using for Loops for Sequential Access.

Using Array Elements as Function Arguments.

Array Arguments.

Using Character Arrays as Strings.

Array Processing Illustrated.

*Case Study: Finding Palindromes in Nucleotide Sequences.*

Dynamic Allocation of Arrays.

**8. Multidimensional Arrays.**

Declaring and Referencing Multidimensional Arrays.

Modeling with Two-Dimensional Arrays.

*Case Study: Cellular Telephone System.*

Vectors and Matrices.

Solving Systems of Linear Equations.

**9. Structure Types.**

User-Defined Structure Types.

Structure Type Data as Input and Output Parameters.

Functions Whose Result Values Are Structured.

Problem Solving with Structure Types.

*Case Study: A User-Defined Type for Complex Numbers.*

Parallel Arrays and Arrays of Structures.

*Case Study: Universal Measurement Conversion.*

**10. Text and Binary File Processing.**

Input/Output Files: Review and Further Study.

Binary Files.

Searching a Database.

*Case Study: Metals Database Inquiry.*

**11. Programming in the Large.**

Using Abstraction to Manage Complexity.

Personal Libraries: Header Files.

Personal Libraries: Implementation Files.

Storage Classes.

Modifying Functions for Inclusion in a Library.

Conditional Compilation.

Arguments to Function main.

Defining Macros with Parameters.

**12. Introduction to Numerical Methods.**

Finding Roots of Equations.

Fundamental Statistics.

Numerical Differentiation.

Numerical Integration.

Solving First-Order Differential Equations.

Commercial Numerical Methods Software.

**13. On To C++.**

C++ Control Structures, Input/Output, and Functions.

C++ Support for Object-Oriented Programming.

**Appendixes.**

A. Character Sets

B. ANSI C Standard Libraries.

C. C Operators.

D. C Numeric Types.

E. Enumerated Types.

F. Pointer Arithmetic.

G. Dynamic Allocation of Two-Dimensional Arrays.

H. ANSI C Reserved Words.

**Answers.**

**Index.**