Additional Information
Book Details
Abstract
This introductory-level C programming book is designed primarily for engineering students required to learn how to program.
In Engineering Problem Solving with C, 4e, best-selling author, Delores Etter, uses real-world engineering and scientific examples and problems throughout the text. Solutions to the problems are developed using the language C and the author's signature five-step problem solving process. Since learning any new skill requires practice at a number of different levels of difficulty, four types of exercises are presented to develop problem-solving skills - Practice! problems, Modify! problems, Short-Answer problems, and Programming problems. The author's clear and precise style creates a highly accessible and readable text for students of all levels.
Table of Contents
Section Title | Page | Action | Price |
---|---|---|---|
Cover | Cover | ||
Contents | 13 | ||
1 Engineering Problem Solving | 23 | ||
Crime Scene Investigation | 22 | ||
1.1 Engineering in the 21[sup(st)] Century | 23 | ||
Recent Engineering Achievements | 23 | ||
Changing Engineering Environment | 29 | ||
1.2 Computing Systems: Hardware and Software | 30 | ||
Computer Hardware | 30 | ||
Computer Software | 31 | ||
Operating Systems | 32 | ||
Software Tools | 32 | ||
Computer Languages | 33 | ||
Executing a Computer Program | 34 | ||
Software Life Cycle | 35 | ||
1.3 An Engineering Problem-Solving Methodology | 36 | ||
Summary | 39 | ||
Key Terms | 39 | ||
Problems | 40 | ||
2 Simple C Programs | 45 | ||
Crime Scene Investigation: Forensic Anthropology | 44 | ||
2.1 Program Structure | 45 | ||
2.2 Constants and Variables | 49 | ||
Scientific Notation | 50 | ||
Numeric Data Types | 51 | ||
Character Data | 53 | ||
Symbolic Constants | 54 | ||
2.3 Assignment Statements | 55 | ||
Arithmetic Operators | 56 | ||
Priority of Operators | 58 | ||
Overflow and Underflow | 61 | ||
Increment and Decrement Operators | 61 | ||
Abbreviated Assignment Operators | 62 | ||
2.4 Standard Input and Output | 63 | ||
Printf Function | 64 | ||
Scanf Function | 67 | ||
2.5 Problem Solving Applied: Estimating Height from Bone Lengths | 68 | ||
2.6 Numerical Technique: Linear Interpolation | 72 | ||
2.7 Problem Solving Applied: Freezing Temperature of Seawater | 76 | ||
2.8 Mathematical Functions | 80 | ||
Elementary Math Functions | 81 | ||
Trigonometric Functions | 82 | ||
Hyperbolic Functions | 84 | ||
2.9 Character Functions | 85 | ||
Character I/O | 85 | ||
Character Comparisons | 86 | ||
2.10 Problem Solving Applied: Velocity Computation | 87 | ||
2.11 System Limitations | 91 | ||
Summary | 92 | ||
Key Terms | 92 | ||
C Statement Summary | 93 | ||
Style: Notes | 93 | ||
Debugging Notes | 94 | ||
Problems | 94 | ||
3 Control Structures and Data Files | 101 | ||
Crime Scene Investigation: Face Recognition and Surveillance Video | 100 | ||
3.1 Algorithm Development | 101 | ||
Top-Down Design | 101 | ||
Decomposition Outline | 102 | ||
Refinement with Pseudocode and Flowcharts | 102 | ||
Structured Programming | 102 | ||
Sequence | 102 | ||
Selection | 103 | ||
Repetition | 104 | ||
Evaluation of Alternative Solutions | 105 | ||
Error Conditions | 106 | ||
Generation of Test Data | 107 | ||
3.2 Conditional Expressions | 108 | ||
Relational Operators | 108 | ||
Logical Operators | 109 | ||
Precedence and Associativity | 109 | ||
3.3 Selection Statements | 110 | ||
Simple if Statement | 110 | ||
If/else Statement | 112 | ||
Switch Statement | 115 | ||
3.4 Problem Solving Applied: Face Recognition | 117 | ||
3.5 Loop Structures | 121 | ||
While Loop | 122 | ||
Do/while Loop | 123 | ||
For Loop | 124 | ||
Break and continue Statements | 127 | ||
3.6 Problem Solving Applied: Wave Interaction | 128 | ||
3.7 Data Files | 136 | ||
I/O Statements | 137 | ||
Reading Data Files | 139 | ||
Specified Number of Records | 139 | ||
Trailer or Sentinel Signals | 142 | ||
End-of-File | 144 | ||
Generating a Data File | 146 | ||
3.8 Numerical Technique: Linear Modeling* | 148 | ||
3.9 Problem Solving Applied: Ozone Measurements* | 151 | ||
Summary | 157 | ||
Key Terms | 157 | ||
C Statement Summary | 157 | ||
Style: Notes | 159 | ||
Debugging Notes | 159 | ||
Problems | 160 | ||
4 Modular Programming with Functions | 169 | ||
Crime Scene Investigation: Iris Recognition | 168 | ||
4.1 Modularity | 169 | ||
4.2 Programmer-Defined Functions | 172 | ||
Function Example | 172 | ||
Function Definition | 176 | ||
Function Prototype | 177 | ||
Parameter List | 178 | ||
Storage Class and Scope | 180 | ||
4.3 Problem Solving Applied: Computing the Boundaries of the Iris | 183 | ||
4.4 Problem Solving Applied: Iceberg Tracking | 189 | ||
4.5 Random Numbers | 195 | ||
Integer Sequences | 195 | ||
Floating-Point Sequences | 199 | ||
4.6 Problem Solving Applied: Instrumentation Reliability | 200 | ||
4.7 Numerical Technique: Roots of Polynomials* | 206 | ||
Polynomial Roots | 206 | ||
Incremental-Search Technique | 208 | ||
4.8 Problem Solving Applied: System Stability* | 210 | ||
4.9 Macros* | 216 | ||
4.10 Recursion* | 219 | ||
Factorial Computation | 220 | ||
Fibonacci Sequence | 222 | ||
Summary | 224 | ||
Key Terms | 224 | ||
C Statement Summary | 224 | ||
Style: Notes | 225 | ||
Debugging Notes | 225 | ||
Problems | 225 | ||
5 Arrays and Matrices | 233 | ||
Crime Scene Investigation: Speech Analysis and Speech Recognition | 232 | ||
5.1 One-Dimensional Arrays | 233 | ||
Definition and Initialization | 234 | ||
Computations and Output | 236 | ||
Function Arguments | 238 | ||
5.2 Problem Solving Applied: Hurricane Categories | 241 | ||
5.3 Problem Solving Applied: Molecular Weights | 246 | ||
5.4 Statistical Measurements | 251 | ||
Simple Analysis | 251 | ||
Maximum and Minimum | 252 | ||
Average | 252 | ||
Median | 252 | ||
Variance and Standard Deviation | 253 | ||
Custom Header File | 255 | ||
5.5 Problem Solving Applied: Speech Signal Analysis | 256 | ||
5.6 Sorting Algorithms | 262 | ||
5.7 Search Algorithms | 264 | ||
Unordered List | 264 | ||
Ordered List | 265 | ||
5.8 Two-Dimensional Arrays | 268 | ||
Definition and Initialization | 269 | ||
Computations and Output | 271 | ||
Function Arguments | 273 | ||
5.9 Problem Solving Applied: Terrain Navigation | 276 | ||
5.10 Matrices and Vectors* | 280 | ||
Dot Product | 280 | ||
Determinant | 281 | ||
Transpose | 282 | ||
Matrix Addition and Subtraction | 283 | ||
Matrix Multiplication | 283 | ||
5.11 Numerical Technique: Solution to Simultaneous Equations* | 285 | ||
Graphical Interpretation | 285 | ||
Gauss Elimination | 290 | ||
5.12 Problem Solving Applied: Electrical Circuit Analysis* | 292 | ||
5.13 Higher Dimensional Arrays* | 297 | ||
Summary | 299 | ||
Key Terms | 299 | ||
C Statement Summary | 300 | ||
Style: Notes | 300 | ||
Debugging Notes | 300 | ||
Problems | 301 | ||
6 Programming with Pointers | 309 | ||
Crime Scene Investigation:DNA Analysis | 308 | ||
6.1 Addresses and Pointers | 309 | ||
Address Operator | 310 | ||
Pointer Assignment | 312 | ||
Address Arithmetic | 315 | ||
6.2 Pointers to Array Elements | 317 | ||
One-Dimensional Arrays | 318 | ||
Two-Dimensional Arrays | 320 | ||
6.3 Problem Solving Applied: E1 NiƱo-Southern Oscillation Data | 323 | ||
6.4 Pointers in Function References | 326 | ||
6.5 Problem Solving Applied: Seismic Event Detection | 329 | ||
6.6 Character Strings | 334 | ||
String Definition and I/O | 334 | ||
String Functions | 335 | ||
6.7 Problem Solving Applied: DNA Sequencing | 338 | ||
6.8 Dynamic Memory Allocation* | 341 | ||
6.9 A Quicksort Algorithm* | 345 | ||
Summary | 348 | ||
Key Terms | 349 | ||
C Statement Summary | 349 | ||
Style: Notes | 349 | ||
Debugging Notes | 349 | ||
Problems | 349 | ||
7 Programming with Structures | 355 | ||
Crime Scene Investigation: Fingerprint Recognition | 354 | ||
7.1 Structures | 355 | ||
Definition and Initialization | 356 | ||
Input and Output | 357 | ||
Computations | 359 | ||
7.2 Using Functions with Structures | 360 | ||
Structures as Function Arguments | 360 | ||
Functions that Return Structures | 361 | ||
7.3 Problem Solving Applied: Fingerprint Analysis | 362 | ||
7.4 Arrays of Structures | 366 | ||
7.5 Problem Solving Applied: Tsunami Analysis | 369 | ||
7.6 Dynamic Data Structures* | 373 | ||
Additional Dynamic Data Structures | 381 | ||
Circularly Linked List | 381 | ||
Doubly Linked List | 382 | ||
Stack | 383 | ||
Queue | 383 | ||
Binary Tree | 384 | ||
Summary | 386 | ||
Key Terms | 386 | ||
C Statement Summary | 386 | ||
Style: Notes | 387 | ||
Debugging Notes | 387 | ||
Problems | 387 | ||
8 An Introduction to C | 393 | ||
Crime Scene Investigation: Hand Recognition | 392 | ||
8.1 Object-Oriented Programming | 393 | ||
8.2 C++ Program Structure | 394 | ||
8.3 Input and Output | 395 | ||
The cout Object | 395 | ||
Stream Functions | 396 | ||
The cin Object | 397 | ||
Defining File Streams | 398 | ||
8.4 C++ Program Examples | 399 | ||
Simple Computations | 399 | ||
Loops | 400 | ||
Functions, One-Dimensional Arrays, and Data Files | 400 | ||
8.5 Problem Solving Applied: Hand Recognition | 402 | ||
8.6 Problem Solving Applied: Surface Wind Directions | 405 | ||
8.7 Classes | 409 | ||
Defining a Class Data Type | 409 | ||
Constructor Functions | 412 | ||
Class Operators | 414 | ||
8.8 Numerical Technique: Complex Roots | 415 | ||
Complex Class Definition | 416 | ||
Complex Roots for Quadratic Equations | 419 | ||
Summary | 422 | ||
Key Terms | 422 | ||
C++ Statement Summary | 422 | ||
Style: Notes | 423 | ||
Debugging Notes | 423 | ||
Problems | 423 | ||
Appendices | 427 | ||
A: ANSI C Standard Library | 427 | ||
427 | |||
427 | |||
428 | |||
428 | |||
429 | |||
430 | |||
430 | |||
431 | |||
431 | |||
431 | |||
431 | |||
431 | |||
434 | |||
435 | |||
436 | |||
B: ASCII Character Codes | 438 | ||
C: Using MATLAB to Plot Data from Text Files | 441 | ||
Complete Solutions to Practice! Problems | 444 | ||
Selected Solutions to Modify! Problems | 456 | ||
Complete Solutions to End-of-Chapter Short-Answer Problems | 458 | ||
Selected Solutions to End-of-Chapter Programming Problems | 462 | ||
Glossary | 466 | ||
A | 466 | ||
B | 466 | ||
C | 466 | ||
D | 467 | ||
E | 468 | ||
F | 468 | ||
G | 469 | ||
H | 469 | ||
I | 469 | ||
K | 469 | ||
L | 469 | ||
M | 469 | ||
N | 470 | ||
O | 470 | ||
P | 470 | ||
Q | 471 | ||
R | 471 | ||
S | 471 | ||
T | 472 | ||
U | 473 | ||
V | 473 | ||
W | 473 | ||
Z | 473 | ||
Index | 474 | ||
A | 474 | ||
B | 475 | ||
C | 475 | ||
D | 475 | ||
E | 476 | ||
F | 476 | ||
G | 477 | ||
H | 477 | ||
I | 477 | ||
J | 477 | ||
K | 477 | ||
L | 477 | ||
M | 478 | ||
N | 478 | ||
O | 478 | ||
P | 478 | ||
Q | 479 | ||
R | 479 | ||
S | 479 | ||
T | 480 | ||
U | 480 | ||
V | 480 | ||
W | 480 | ||
Z | 480 |