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 |