Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!
| Preface | p. xiii |
| Acknowledgments | p. xxi |
| About the Author | p. xxiii |
| Introduction to Computers and Programming | p. 1 |
| Introduction | p. 1 |
| Hardware | p. 2 |
| How Computers Store Data | p. 7 |
| How a Program Works | p. 12 |
| Types of Software | p. 20 |
| Review Questions | p. 22 |
| Input, Processing, and Output | ... MORE |
| Designing a Program | p. 27 |
| Output, Input, and Variables | p. 32 |
| Variable Assignment and Calculations | p. 41 |
| In The Spotlight: Calculating Cell Phone Overage Fees | p. 45 |
| In The Spotlight: Calculating a Percentage | p. 47 |
| In The Spotlight: Calculating an Average | p. 50 |
| In The Spotlight: Converting a Math Formula to a Programming Statement | p. 53 |
| Variable Declarations and Data Types | p. 56 |
| Named Constants | p. 62 |
| Hand Tracing a Program | p. 63 |
| Documenting a Program | p. 64 |
| In The Spotlight: Using Named Constants, Style Conventions, and Comments | p. 66 |
| Designing Your First Program | p. 68 |
| Review Questions | p. 71 |
| Debugging Exercises | p. 76 |
| Programming Exercises | p. 77 |
| Modules | p. 79 |
| Introduction to Modules | p. 79 |
| Defining and Calling a Module | p. 82 |
| In The Spotlight: Defining and Calling Modules | p. 88 |
| Local Variables | p. 92 |
| Passing Arguments to Modules | p. 94 |
| In The Spotlight: Passing an Argument to a Module | p. 99 |
| In The Spotlight: Passing an Argument by Reference | p. 104 |
| Global Variables and Global Constants | p. 108 |
| In The Spotlight: Using Global Constants | p. 109 |
| Review Questions | p. 113 |
| Debugging Exercises | p. 117 |
| Programming Exercises | p. 117 |
| Decision Structures and Boolean Logic | p. 121 |
| Introduction to Decision Structures | p. 121 |
| In The Spotlight: Using the if-Then Statement | p. 128 |
| Dual Alternative Decision Structures | p. 131 |
| In The Spotlight: Using the If-Then-Else Statement | p. 132 |
| Comparing Strings | p. 137 |
| Nested Decision Structures | p. 141 |
| In The Spotlight: Multiple Nested Decision Structures | p. 144 |
| The Case Structure | p. 148 |
| In The Spotlight: Using a Case Structure | p. 151 |
| Logical Operators | p. 153 |
| Boolean Variables | p. 160 |
| Review Questions | p. 161 |
| Debugging Exercises | p. 165 |
| Programming Exercises | p. 166 |
| Repetition Structures | p. 169 |
| Introduction to Repetition Structures | p. 169 |
| Condition-Controlled Loops: while, Do-while, and Do-until | p. 170 |
| In The Spotlight: Designing a While Loop | p. 175 |
| In The Spotlight: Designing a Do-While Loop | p. 184 |
| Count-Controlled Loops and the For Statement | p. 189 |
| In The Spotlight: Designing a Count-Controlled Loop with the For Statement | p. 197 |
| Calculating a Running Total | p. 207 |
| Sentinels | p. 211 |
| In The Spotlight: Using a Sentinel | p. 212 |
| Nested Loops | p. 215 |
| Review Questions | p. 218 |
| Debugging Exercises | p. 222 |
| Programming Exercises | p. 222 |
| Functions | p. 225 |
| Introduction to Functions: Generating Random Numbers | p. 225 |
| In The Spotlight: Using Random Numbers | p. 229 |
| In The Spotlight: Using Random Numbers to Represent Other Values | p. 231 |
| Writing Your Own Functions | p. 233" |
| In The Spotlight: Modularizing with Functions | p. 240 |
| More Library Functions | p. 248 |
| Review Questions | p. 259 |
| Debugging Exercises | p. 261 |
| Programming Exercises | p. 262 |
| Input Validation | p. 267 |
| Garbage In, Garbage Out | p. 267 |
| The Input Validation Loop | p. 268 |
| In The Spotlight: Designing an Input Validation Loop | p. 270 |
| Defensive Programming | p. 275 |
| Review Questions | p. 276 |
| Debugging Exercises | p. 278 |
| Programming Exercises | p. 279 |
| Arrays | p. 281 |
| Array Basics | p. 281 |
| In The Spotlight: Using Array Elements in a Math Expression | p. 288 |
| Sequentially Searching an Array | p. 295 |
| Processing the Contents of an Array | p. 301 |
| In The Spotlight: Processing an Array | p. 308 |
| Parallel Arrays | p. 315 |
| In The Spotlight: Using Parallel Arrays | p. 316 |
| Two-Dimensional Arrays | p. 319 |
| In The Spotlight: Using a Two-Dimensional Array | p. 323 |
| Arrays of Three or More Dimensions | p. 328 |
| Review Questions | p. 329 |
| Debugging Exercises | p. 332 |
| Programming Exercises | p. 333 |
| Sorting and Searching Arrays | p. 337 |
| The Bubble Sort Algorithm | p. 337 |
| In The Spotlight: Using the Bubble Sort Algorithm | p. 344 |
| The Selection Sort Algorithm | p. 351 |
| The Insertion Sort Algorithm | p. 357 |
| The Binary Search Algorithm | p. 363 |
| In The Spotlight: Using the Binary Search Algorithm | p. 367 |
| Review Questions | p. 369 |
| Debugging Exercise | p. 373 |
| Programming Exercises | p. 373 |
| Files | p. 375 |
| Introduction to File Input and Output | p. 375 |
| Using Loops to Process Files | p. 387 |
| In The Spotlight: Working with Files | p. 392 |
| Using Files and Arrays | p. 396 |
| Processing Records | p. 397 |
| In The Spotlight: Adding and Displaying Records | p. 402 |
| In The Spotlight: Searching for a Records | p. 406 |
| In The Spotlight: Modifying Records | p. 408 |
| In The Spotlight: Deleting Records | p. 412 |
| Control Break Logic | p. 415 |
| In The Spotlight: Using Control Break Logic | p. 417 |
| Review Questions | p. 423 |
| Debugging Exercise | p. 426 |
| Programming Exercises | p. 426 |
| Menu-Driven Programs | p. 429 |
| Introduction to Menu-Driven Programs | p. 429 |
| Modularizing a Menu-Driven Program | p. 440 |
| Using a Loop to Repeat the Menu | p. 445 |
| In The Spotlight: Designing a Menu-Driven Program | p. 450 |
| Multiple-Level Menus | p. 464 |
| Review Questions | p. 470 |
| Programming Exercises | p. 472 |
| Text Processing | p. 475 |
| Introduction | p. 475 |
| Character-by-Character Text Processing | p. 477 |
| In The Spotlight: Validating a Password | p. 480 |
| In The Spotlight: Formatting and Unformatting Telephone Numbers | p. 486 |
| Review Questions | p. 491 |
| Debugging Exercises | p. 493 |
| Programming Exercises | p. 494 |
| Recursion | p. 497 |
| Introduction to Recursion | p. 497 |
| Problem Solving with Recursion | p. 500 |
| Examples of Recursive Algorithms | p. 504 |
| Review Questions | p. 514 |
| Programming Exercises | p. 517 |
| Object-Oriented Programming | p. 519 |
| Procedural and Object-Oriented Programming | p. 519 |
| Classes | p. 523 |
| Using the Unified Modeling Language to Design Classes | p. 534 |
| Finding the Classes and Their Responsibilities in a Problem | p. 537 |
| In The Spotlight: Finding the Classes in a Problem | p. 537 |
| In The Spotlight: Determining Class Responsibilities | p. 541 |
| Inheritance | p. 547 |
| Polymorphism | p. 555 |
| Review Questions | p. 559 |
| Programming Exercises | p. 563 |
| ÇU1 Applications and Event-Driven Programming | p. 565 |
| Graphical User Interfaces | p. 565 |
| Designing the User Interface for a GUI Program | p. 568 |
| In The Spotlight: Designing a Window | p. 573 |
| Writing Event Handlers | p. 575 |
| In The Spotlight: Designing an Event Handler | p. 578 |
| Review Questions | p. 580 |
| Programming Exercises | p. 582 |
| ASCII/Unicode Characters | p. 585 |
| Flowchart Symbols | p. 587 |
| Pseudocode Reference | p. 589 |
| Answers to Checkpoint Questions (located on the CD that accompanies this book) | |
| Index | p. 601 |
| Table of Contents provided by Ingram. All Rights Reserved. |