Think like a programmer : an introduction to creative problem solving /
"The real challenge of programming isn't learning a language's syntax--it's learning to creatively solve problems so you can build something great. In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other i...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
San Francisco :
No Starch Press,
[2012]
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Acknowledgments; Introduction; About This Book; Prerequisites; Chosen Topics; Programming Style; Exercises; Why C++?; 1: Strategies for Problem Solving; Classic Puzzles; The Fox, the Goose, and the Corn; Problem: How to Cross the River?; Sliding Tile Puzzles; Problem: The Sliding Eight; Problem: The Sliding Five; Sudoku; Problem: Completing a Sudoku Square; The Quarrasi Lock; Problem: Opening the Alien Lock; General Problem-Solving Techniques; Always Have a Plan; Restate the Problem; Divide the Problem; Start with What You Know; Reduce the Problem; Look for Analogies; Experiment.
- Don't Get FrustratedExercises; 2: Pure Puzzles; Review of C++ Used in This Chapter; Output Patterns; Problem: Half of a Square; Problem: A Square (Half of a Square Reduction); Problem: A Line (Half of a Square Further Reduction); Problem: Count Down by Counting Up; Problem: A Sideways Triangle; Input Processing; Problem: Luhn Checksum Validation; Breaking Down the Problem; Problem: Convert Character Digit to Integer; Problem: Luhn Checksum Validation, Fixed Length; Problem: Simple Checksum Validation, Fixed Length; Problem: Positive or Negative; Putting the Pieces Together; Tracking State.
- Problem: Decode a MessageProblem: Reading a Number with Three or Four Digits; Problem: Reading a Number with Three or Four Digits, Further Simplified; Conclusion; Exercises; 3: Solving Problems with Arrays; Review of Array Fundamentals; Store; Copy; Retrieval and Search; Sort; Compute Statistics; Solving Problems with Arrays; Problem: Finding the Mode; Refactoring; Arrays of Fixed Data; Non-scalar Arrays; Multidimensional Arrays; Deciding When to Use Arrays; Exercises; 4: Solving Problems with Pointers and Dynamic Memory; Review of Pointer Fundamentals; Benefits of Pointers.
- Runtime-Sized Data StructuresResizable Data Structures; Memory Sharing; When to Use Pointers; Memory Matters; The Stack and the Heap; Memory Size; Lifetime; Solving Pointer Problems; Variable-Length Strings; Problem: Variable-Length String Manipulation; Linked Lists; Problem: Tracking an Unknown Quantity of Student Records; Conclusion and Next Steps; Exercises; 5: Solving Problems with Classes; Review of Class Fundamentals; Goals of Class Use; Encapsulation; Code Reuse; Dividing the Problem; Information Hiding; Readability; Expressiveness; Building a Simple Class; Problem: Class Roster.
- The Basic Class FrameworkSupport Methods; Classes with Dynamic Data; Problem: Tracking an Unknown Quantity of Student Records; Adding a Node; Rearranging the List; Destructor; Deep Copy; The Big Picture for Classes with Dynamic Memory; Mistakes to Avoid; The Fake Class; Single-Taskers; Exercises; 6: Solving Problems with Recursion; Review of Recursion Fundamentals; Head and Tail Recursion; Problem: How Many Parrots?; Approach 1; Approach 2; Problem: Who's Our Best Customer?; Approach 1; Approach 2; The Big Recursive Idea; Problem: Computing the Sum of an Array of Integers; Common Mistakes.