Problem Solving with C, Global Edition

Höfundur Walter Savitch

Útgefandi Pearson International Content

Snið Page Fidelity

Print ISBN 9781292222820

Útgáfa 10

Höfundarréttur 2018

4.890 kr.

Description

Efnisyfirlit

  • Inside Front Cover
  • Title Page
  • Copyright Page
  • Preface
  • Acknowledgments
  • Brief Contents
  • Contents
  • Chapter 1 Introduction to Computers and C++ Programming
  • 1.1 COMPUTER SYSTEMS
  • Hardware
  • Software
  • High-Level Languages
  • Compilers
  • History Note
  • 1.2 PROGRAMMING AND PROBLEM-SOLVING
  • Algorithms
  • Program Design
  • Object-Oriented Programming
  • The Software Life Cycle
  • 1.3 INTRODUCTION TO C++
  • Origins of the C++ Language
  • A Sample C++ Program
  • Pitfall: Using the Wrong Slash in n
  • Programming Tip: Input and Output Syntax
  • Layout of a Simple C++ Program
  • Pitfall: Putting a Space Before the include File Name
  • Compiling and Running a C++ Program
  • Pitfall: Compiling a C++11 Program
  • Programming Tip: Getting Your Program to Run
  • 1.4 TESTING AND DEBUGGING
  • Kinds of Program Errors
  • Pitfall: Assuming Your Program Is Correct
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 2 C++ Basics
  • 2.1 VARIABLES AND ASSIGNMENTS
  • Variables
  • Names: Identifiers
  • Variable Declarations
  • Assignment Statements
  • Pitfall: Uninitialized Variables
  • Programming Tip: Use Meaningful Names
  • 2.2 INPUT AND OUTPUT
  • Output Using cout
  • Include Directives and Namespaces
  • Escape Sequences
  • Programming Tip: End Each Program with a n or end1
  • Formatting for Numbers with a Decimal Point
  • Input Using cin
  • Designing Input and Output
  • Programming Tip: Line Breaks in I/O
  • 2.3 DATA TYPES AND EXPRESSIONS
  • The Types int and double
  • Other Number Types
  • C++11 Types
  • The Type char
  • The Type bool
  • Introduction to the Class string
  • Type Compatibilities
  • Arithmetic Operators and Expressions
  • Pitfall: Whole Numbers in Division
  • More Assignment Statements
  • 2.4 SIMPLE FLOW OF CONTROL
  • A Simple Branching Mechanism
  • Pitfall: Strings of Inequalities
  • Pitfall: Using = in place of ==
  • Compound Statements
  • Simple Loop Mechanisms
  • Increment and Decrement Operators
  • Programming Example: Charge Card Balance
  • Pitfall: Infinite Loops
  • 2.5 PROGRAM STYLE
  • Indenting
  • Comments
  • Naming Constants
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 3 More Flow of Control
  • 3.1 USING BOOLEAN EXPRESSIONS
  • Evaluating Boolean Expressions
  • Pitfall: Boolean Expressions Convert to int Values
  • Enumeration Types (Optional)
  • 3.2 MULTIWAY BRANCHES
  • Nested Statements
  • Programming Tip: Use Braces in Nested Statements
  • Multiway if-else Statements
  • Programming Example: State Income Tax
  • The switch Statement
  • Pitfall: Forgetting a break in a switch Statement
  • Using switch Statements for Menus
  • Blocks
  • Pitfall: Inadvertent Local Variables
  • 3.3 MORE ABOUT C++ LOOP STATEMENTS
  • The while Statements Reviewed
  • Increment and Decrement Operators Revisited
  • The for Statement
  • Pitfall: Extra Semicolon in a for Statement
  • What Kind of Loop to Use
  • Pitfall: Uninitialized Variables and Infinite Loops
  • The break Statement
  • Pitfall: The break Statement in Nested Loops
  • 3.4 DESIGNING LOOPS
  • Loops for Sums and Products
  • Ending a Loop
  • Nested Loops
  • Debugging Loops
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 4 Procedural Abstraction and Functions That Return a Value
  • 4.1 TOP-DOWN DESIGN
  • 4.2 PREDEFINED FUNCTIONS
  • Using Predefined Functions
  • Random Number Generation
  • Type Casting
  • Older Form of Type Casting
  • Pitfall: Integer Division Drops the Fractional Part
  • 4.3 PROGRAMMER-DEFINED FUNCTIONS
  • Function Definitions
  • Functions That Return a Boolean Value
  • Alternate Form for Function Declarations
  • Pitfall: Arguments in the Wrong Order
  • Function Definition–Syntax Summary
  • More About Placement of Function Definitions
  • Programming Tip: Use Function Calls in Branching Statements
  • 4.4 PROCEDURAL ABSTRACTION
  • The Black-Box Analogy
  • Programming Tip: Choosing Formal Parameter Names
  • Programming Tip: Nested Loops
  • Case Study: Buying Pizza
  • Programming Tip: Use Pseudocode
  • 4.5 SCOPE AND LOCAL VARIABLES
  • The Small Program Analogy
  • Programming Example: Experimental Pea Patch
  • Global Constants and Global Variables
  • Call-by-Value Formal Parameters Are Local Variables
  • Block Scope
  • Namespaces Revisited
  • Programming Example: The Factorial Function
  • 4.6 OVERLOADING FUNCTION NAMES
  • Introduction to Overloading
  • Programming Example: Revised Pizza-Buying Program
  • Automatic Type Conversion
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 5 Functions for All Subtasks
  • 5.1 VOID FUNCTIONS
  • Definitions of void Functions
  • Programming Example: Converting Temperatures
  • return Statements in void Functions
  • 5.2 CALL-BY-REFERENCE PARAMETERS
  • A First View of Call-by-Reference
  • Call-by-Reference in Detail
  • Programming Example: The swapValues Function
  • Mixed Parameter Lists
  • Programming Tip: What Kind of Parameter to Use
  • Pitfall: Inadvertent Local Variables
  • 5.3 USING PROCEDURAL ABSTRACTION
  • Functions Calling Functions
  • Preconditions and Postconditions
  • Case Study: Supermarket Pricing
  • 5.4 TESTING AND DEBUGGING FUNCTIONS
  • Stubs and Drivers
  • 5.5 GENERAL DEBUGGING TECHNIQUES
  • Keep an Open Mind
  • Check Common Errors
  • Localize the Error
  • The assert Macro
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 6 I/O Streams as an Introduction to Objects and Classes
  • 6.1 STREAMS AND BASIC FILE I/O
  • Why Use Files for I/O?
  • File I/O
  • Introduction to Classes and Objects
  • Programming Tip: Check Whether a File Was Opened Successfully
  • Techniques for File I/O
  • Appending to a File (Optional)
  • File Names as Input (Optional)
  • 6.2 TOOLS FOR STREAM I/O
  • Formatting Output with Stream Functions
  • Manipulators
  • Streams as Arguments to Functions
  • Programming Tip: Checking for the End of a File
  • A Note on Namespaces
  • Programming Example: Cleaning Up a File Format
  • 6.3 CHARACTER I/O
  • The Member Functions get and put
  • The putback Member Function (Optional)
  • Programming Example: Checking Input
  • Pitfall: Unexpected ‘n’ in Input
  • Programming Example: Another newLine Function
  • Default Arguments for Functions (Optional)
  • The eof Member Function
  • Programming Example: Editing a Text File
  • Predefined Character Functions
  • Pitfall: toupper and tolower Return Values
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 7 Arrays
  • 7.1 INTRODUCTION TO ARRAYS
  • Declaring and Referencing Arrays
  • Programming Tip: Use for Loops with Arrays
  • Pitfall: Array Indexes Always Start with Zero
  • Programming Tip: Use a Defined Constant for the Size of an Array
  • Arrays in Memory
  • Pitfall: Array Index Out of Range
  • Initializing Arrays
  • Programming Tip: C++11 Range-Based for Statement
  • 7.2 ARRAYS IN FUNCTIONS
  • Indexed Variables as Function Arguments
  • Entire Arrays as Function Arguments
  • The const Parameter Modifier
  • Pitfall: Inconsistent Use of const Parameters
  • Functions That Return an Array
  • Case Study: Production Graph
  • 7.3 PROGRAMMING WITH ARRAYS
  • Partially Filled Arrays
  • Programming Tip: Do Not Skimp on Formal Parameters
  • Programming Example: Searching an Array
  • Programming Example: Sorting an Array
  • Programming Example: Bubble Sort
  • 7.4 MULTIDIMENSIONAL ARRAYS
  • Multidimensional Array Basics
  • Multidimensional Array Parameters
  • Programming Example: Two-Dimensional Grading Program
  • Pitfall: Using Commas Between Array Indexes
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 8 Strings and Vectors
  • 8.1 AN ARRAY TYPE FOR STRINGS
  • C-String Values and C-String Variables
  • Pitfall: Using = and == with C Strings
  • Other Functions in
  • Pitfall: Copying past the end of a C-string using strcpy
  • C-String Input and Output
  • C-String-to-Number Conversions and Robust Input
  • 8.2 THE STANDARD STRING CLASS
  • Introduction to the Standard Class string
  • I/O with the Class string
  • Programming Tip: More Versions of getline
  • Pitfall: Mixing cin >> variable; and getline
  • String Processing with the Class string
  • Programming Example: Palindrome Testing
  • Converting between string Objects and C Strings
  • Converting Between Strings and Numbers
  • 8.3 VECTORS
  • Vector Basics
  • Pitfall: Using Square Brackets Beyond the Vector Size
  • Programming Tip: Vector Assignment Is Well Behaved
  • Efficiency Issues
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 9 Pointers and Dynamic Arrays
  • 9.1 POINTERS
  • Pointer Variables
  • Basic Memory Management
  • Pitfall: Dangling Pointers
  • Static Variables and Automatic Variables
  • Programming Tip: Define Pointer Types
  • 9.2 DYNAMIC ARRAYS
  • Array Variables and Pointer Variables
  • Creating and Using Dynamic Arrays
  • Pointer Arithmetic (Optional)
  • Multidimensional Dynamic Arrays (Optional)
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 10 Defining Classes
  • 10.1 STRUCTURES
  • Structures for Diverse Data
  • Pitfall: Forgetting a Semicolon in a Structure Definition
  • Structures as Function Arguments
  • Programming Tip: Use Hierarchical Structures
  • Initializing Structures
  • 10.2 CLASSES
  • Defining Classes and Member Functions
  • Public and Private Members
  • Programming Tip: Make All Member Variables Private
  • Programming Tip: Define Accessor and Mutator Functions
  • Programming Tip: Use the Assignment Operator with Objects
  • Programming Example: BankAccount Class—Version 1
  • Summary of Some Properties of Classes
  • Constructors for Initialization
  • Programming Tip: Always Include a Default Constructor
  • Pitfall: Constructors with No Arguments
  • Member Initializers and Constructor Delegation in C++11
  • 10.3 ABSTRACT DATA TYPES
  • Classes to Produce Abstract Data Types
  • Programming Example: Alternative Implementation of a Class
  • 10.4 INTRODUCTION TO INHERITANCE
  • Derived Classes
  • Defining Derived Classes
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 11 Friends, Overloaded Operators, and Arrays in Classes
  • 11.1 FRIEND FUNCTIONS
  • Programming Example: An Equality Function
  • Friend Functions
  • Programming Tip: Define Both Accessor Functions and Friend Functions
  • Programming Tip: Use Both Member and Nonmember Functions
  • Programming Example: Money Class (Version 1)
  • Implementation of digitToInt (Optional)
  • Pitfall: Leading Zeros in Number Constants
  • The const Parameter Modifier
  • Pitfall: Inconsistent Use of const
  • 11.2 OVERLOADING OPERATORS
  • Overloading Operators
  • Constructors for Automatic Type Conversion
  • Overloading Unary Operators
  • Overloading >> and <<
  • 11.3 ARRAYS AND CLASSES
  • Arrays of Classes
  • Arrays as Class Members
  • Programming Example: A Class for a Partially Filled Array
  • 11.4 CLASSES AND DYNAMIC ARRAYS
  • Programming Example: A String Variable Class
  • Destructors
  • Pitfall: Pointers as Call-by-Value Parameters
  • Copy Constructors
  • Overloading the Assignment Operator
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 12 Separate Compilation and Namespaces
  • 12.1 SEPARATE COMPILATION
  • ADTs Reviewed
  • Case Study: DigitalTime—A Class Compiled Separately
  • Using #ifndef
  • Programming Tip: Defining Other Libraries
  • 12.2 NAMESPACES
  • Namespaces and using Directives
  • Creating a Namespace
  • Qualifying Names
  • A Subtle Point About Namespaces (Optional)
  • Unnamed Namespaces
  • Programming Tip: Choosing a Name for a Namespace
  • Pitfall: Confusing the Global Namespace and the Unnamed Namespace
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 13 Pointers and Linked Lists
  • 13.1 NODES AND LINKED LISTS
  • Nodes
  • nullptr
  • Linked Lists
  • Inserting a Node at the Head of a List
  • Pitfall: Losing Nodes
  • Searching a Linked List
  • Pointers as Iterators
  • Inserting and Removing Nodes Inside a List
  • Pitfall: Using the Assignment Operator with Dynamic Data Structures
  • Variations on Linked Lists
  • Linked Lists of Classes
  • 13.2 STACKS AND QUEUES
  • Stacks
  • Programming Examples: A Stack Class
  • Queues
  • Programming Examples: A Queue Class
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 14 Recursion
  • 14.1 RECURSIVE FUNCTIONS FOR TASKS
  • Case Study: Vertical Numbers
  • A Closer Look at Recursion
  • Pitfall: Infinite Recursion
  • Stacks for Recursion
  • Pitfall: Stack Overflow
  • Recursion Versus Iteration
  • 14.2 RECURSIVE FUNCTIONS FOR VALUES
  • General Form for a Recursive Function That Returns a Value
  • Programming Example: Another Powers Function
  • 14.3 THINKING RECURSIVELY
  • Recursive Design Techniques
  • Case Study: Binary Search—An Example of Recursive Thinking
  • Programming Example: A Recursive Member Function
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 15 Inheritance
  • 15.1 INHERITANCE BASICS
  • Derived Classes
  • Constructors in Derived Classes
  • Pitfall: Use of Private Member Variables from the Base Class
  • Pitfall: Private Member Functions Are Effectively Not Inherited
  • The protected Qualifier
  • Redefinition of Member Functions
  • Redefining Versus Overloading
  • Access to a Redefined Base Function
  • 15.2 INHERITANCE DETAILS
  • Functions That Are Not Inherited
  • Assignment Operators and Copy Constructors in Derived Classes
  • Destructors in Derived Classes
  • 15.3 POLYMORPHISM
  • Late Binding
  • Virtual Functions in C++
  • Virtual Functions and Extended Type Compatibility
  • Pitfall: The Slicing Problem
  • Pitfall: Not Using Virtual Member Functions
  • Pitfall: Attempting to Compile Class Definitions Without Definitions for Every Virtual Member Functi
  • Programming Tip: Make Destructors Virtual
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 16 Exception Handling
  • 16.1 EXCEPTION-HANDLING BASICS
  • A Toy Example of Exception Handling
  • Defining Your Own Exception Classes
  • Multiple Throws and Catches
  • Pitfall: Catch the More Specific Exception First
  • Programming Tip: Exception Classes Can Be Trivial
  • Throwing an Exception in a Function
  • Exception Specification
  • Pitfall: Exception Specification in Derived Classes
  • 16.2 PROGRAMMING TECHNIQUES FOR EXCEPTION HANDLING
  • When to Throw an Exception
  • Pitfall: Uncaught Exceptions
  • Pitfall: Nested try-catch Blocks
  • Pitfall: Overuse of Exceptions
  • Exception Class Hierarchies
  • Testing for Available Memory
  • Rethrowing an Exception
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 17 Templates
  • 17.1 TEMPLATES FOR ALGORITHM ABSTRACTION
  • Templates for Functions
  • Pitfall: Compiler Complications
  • Programming Example: A Generic Sorting Function
  • Programming Tip: How to Define Templates
  • Pitfall: Using a Template with an Inappropriate Type
  • 17.2 TEMPLATES FOR DATA ABSTRACTION
  • Syntax for Class Templates
  • Programming Example: An Array Class
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • Chapter 18 Standard Template Library and C++11
  • 18.1 ITERATORS
  • using Declarations
  • Iterator Basics
  • Programming Tip: Use auto to Simplify Variable Declarations
  • Pitfall: Compiler Problems
  • Kinds of Iterators
  • Constant and Mutable Iterators
  • Reverse Iterators
  • Other Kinds of Iterators
  • 18.2 CONTAINERS
  • Sequential Containers
  • Pitfall: Iterators and Removing Elements
  • Programming Tip: Type Definitions in Containers
  • Container Adapters stack and queue
  • Associative Containers set and map
  • Programming Tip: Use Initialization, Ranged for, and auto with Containers
  • Efficiency
  • 18.3 GENERIC ALGORITHMS
  • Running Times and Big-O Notation
  • Container Access Running Times
  • Nonmodifying Sequence Algorithms
  • Container Modifying Algorithms
  • Set Algorithms
  • Sorting Algorithms
  • 18.4 C++ IS EVOLVING
  • std::array
  • Regular Expressions
  • Threads
  • Smart Pointers
  • Chapter Summary
  • Answers to Self-Test Exercises
  • Practice Programs
  • Programming Projects
  • APPENDICES
  • 1 C++ Keywords
  • 2 Precedence of Operators
  • 3 The ASCII Character Set
  • 4 Some Library Functions
  • 5 Inline Functions
  • 6 Overloading the Array Index Square Brackets
  • 7 The this Pointer
  • 8 Overloading Operators as Member Operators
  • CREDITS
  • INDEX
  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • Z
Show More

Additional information

Veldu vöru

Leiga á rafbók í 180 daga, Leiga á rafbók í 365 daga, Rafbók til eignar, Leiga á rafbók í 90 daga

Reviews

There are no reviews yet.

Be the first to review “Problem Solving with C, Global Edition”

Netfang þitt verður ekki birt. Nauðsynlegir reitir eru merktir *

Aðrar vörur

1
    1
    Karfan þín
    Against Borders
    Against Borders
    Veldu vöru:

    Rafbók til eignar

    1 X 2.490 kr. = 2.490 kr.