C How to Program

C How to Program : United States Edition

3.96 (265 ratings by Goodreads)
  • Mixed media product
By (author)  , By (author) 

List price: US$85.00

Currently unavailable

We can notify you when this item is back in stock

Add to wishlist

AbeBooks may have this title (opens in new window).

Try AbeBooks


For CS1 and other courses covering programming in C. Also appropriate as a supplement for upper-level courses where the instructor uses a book as a reference to the C language. This comprehensive text is aimed at readers with little or no programming experience. Highly practical in approach, it introduces fundamental notions of structured programming and software engineering and gets up to speed quickly. The book covers not only the full C language, but includes a review of library functions and a solid introduction to C++, Java, and object-oriented programming.show more

Product details

  • Mixed media product | 1253 pages
  • 177.8 x 228.6 x 43.18mm | 1,882.4g
  • Pearson Education (US)
  • Prentice Hall
  • Upper Saddle River, United States
  • 3rd edition
  • 0130895725
  • 9780130895721

Table of contents

(NOTE: Each chapter begins with Objectives, an Outline, and an Introduction and ends with a Summary, Terminology, Common Programming Errors, Good Programming Practices, Performance Tips, Portability Tips, Software Engineering Observations, Self-Review Exercises, Answers to Self-Review Exercises, and Exercises.) 1. Introduction to Computers, the Internet and the World Wide Web. What Is a Computer? Computer Organization. Evolution of Operating Systems. Personal Computing, Distributed Computing and Client/Server Computing. Machine Languages, Assembly Languages and High-Level Languages. The History of C. The C Standard Library. The Key Software Trend: Object Technology. C++ and C++ How to Program. Java and Java How to Program. Other High-Level Languages. Structured Programming. The Basics of a Typical C Program Development Environment. Hardware Trends. History of the Internet. History of the World Wide Web. General Notes about C and This Book. 2. Introduction to C Programming. A Simple C Program: Printing a Line of Text. Another Simple C Program: Adding Two Integers. Memory Concepts. Arithmetic in C. Decision Making: Equality and Relational Operators. 3. Structured Program Development in C. Algorithms. Pseudocode. Control Structures. The if Selection Structure. The if/else Selection Structure. The while Repetition Structure. Formulating Algorithms: Case Study 1 (Counter-Controlled Repetition). Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition). Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Controlled Repetition). Assignment Operators. Increment and Decrement Operators. 4. C Program Control. The Essentials of Repetition. Counter-Controlled Repetition. The for Repetition Structure. The for Structure: Notes and Observations. Examples Using the for Structure. The switch Multiple-Selection Structure. The do/while Repetition Structure. The break and continue Statements. Logical Operators. Confusing Equality (==) and Assignment (=) Operators. Structured Programming Summary. 5. C Functions. Program Modules in C. Math Library Functions. Functions. Function Definitions. Function Prototypes. Header Files. Calling Functions: Call by Value and Call by Reference. Random Number Generation. Example: A Game of Chance. Storage Classes. Scope Rules. Recursion. Example Using Recursion: The Fibonacci Series. Recursion vs. Iteration. 6. C Arrays. Arrays. Declaring Arrays. Examples Using Arrays. Passing Arrays to Functions. Sorting Arrays. Case Study: Computing Mean, Median and Mode Using Arrays. Searching Arrays. Multiple-Subscripted Arrays. 7. C Pointers. Pointer Variable Declarations and Initialization. Pointer Operators. Calling Functions by Reference. Using the const Qualifier with Pointers. Bubble Sort Using Call by Reference. Pointer Expressions and Pointer Arithmetic. The Relationship between Pointers and Arrays. Arrays of Pointers. Case Study: A Card Shuffling and Dealing Simulations. Pointers to Functions. 8. C Characters and Strings. Fundamentals of Strings and Characters. Character Handling Library. String Conversion Functions. Standard Input/Output Library Functions. String Manipulation Functions of the String Handling Library. Comparison Functions of the String Handling Library. Search Functions of the String Handling Library. Memory Functions of the String Handling Library. Other Functions of the String Handling Library. 9. C Formatted Input/Output. Streams. Formatting Output with printf. Printing Integers. Printing Floating-Point Numbers. Printing Strings and Characters. Other Conversion Specifiers. Printing with Field Widths and Precisions. Using Flags in the printf Format-Control String. Printing Literals and Escape Sequences. Formatting Input with scanf. 10. C Structures, Unions, Bit Manipulations, and Enumerations. Structure Definitions. Initializing Structures. Accessing Members of Structures. Using Structures with Functions. typedef. Example: High-Performance Card Shuffling and Dealing Simulation. Unions. Bitwise Operators. Bit Fields. Enumeration Constants. 11. C File Processing. The Data Hierarchy. Files and Streams. Creating a Sequential-Access File. Reading Data from a Sequential-Access File. Random-Access Files. Creating a Randomly Accessed File. Writing Data Randomly to a Randomly Accessed File. Reading Data Randomly from a Randomly Accessed File. Case Study: A Transaction-Processing Program. 12. C Data Structures. Self-Referential Structures. Dynamic Memory Allocation. Linked Lists. Stacks. Queues. Trees. 13. C Preprocessor. The #include Preprocessor Directive. The #define Preprocessor Directive: Symbolic Constants. The #define Preprocessor Directive: Macros. Conditional Compilation. The #error and #pragma Preprocessor Directives. The # and ## Operators. Line Numbers. Predefined Symbolic Constants. Assertions. 14. Advanced C Topics. Redirecting Input/Output on UNIX and DOS Systems. Variable-Length Argument Lists. Using Command-Line Arguments. Notes on Compiling Multiple-Source-File Programs. Program Termination with Exit and AtExit. The volatile Type Qualifier. Suffixes for Integer and Floating-Point Constants. More on Files. Signal Handling. Dynamic Memory Allocation: Functions Calloc and Realloc. The Unconditional Branch: Goto. 15. C++ as a "Better C." C++. A Simple Program: Adding Two Integers. C++ Standard Library. Header Files. Inline Functions. References and Reference Parameters. Default Arguments and Empty Parameter Lists. Unary Scope Resolution Operator. Function Overloading. Function Templates. 16. C++ Classes and Data Abstraction. Implementing a Time Abstract Data Type with a Class. Class Scope and Accessing Class Members. Separating Interface from Implementation. Controlling Access to Members. Access Functions and Utility Functions. Initializing Class Objects: Constructors. Using Default Arguments with Constructors. Using Destructors. When Constructors and Destructors Are Called. Using Data Members and Member Functions. A Subtle Trap: Returning a Reference to a private Data Member. Assignment by Default Memberwise Copy. Software Reusability. 17. C++ Classes: Part II. const (Constant) Objects and const Member Functions. Composition: Objects as Members of Classes. friend Functions and friend Classes. Using the this Pointer. Dynamic Memory Allocation with Operators new and delete. Static Class Members. Data Abstraction and Information Hiding. Container Classes and Iterators. 18. C++ Operator Overloading. Fundamentals of Operator Overloading. Restrictions on Operator Overloading. Operator Functions as Class Members vs. as Friend Functions. Overloading Stream-Insertion and Stream-Extraction Operators. Overloading Unary Operators. Overloading Binary Operators. Case Study: An Array Class. Converting between Types. Overloading ++ and - -. 19. C++ Inheritance. Inheritance: Base Classes and Derived Classes. Protected Members. Casting Base-Class Pointers to Derived-Class Pointers. Using Member Functions. Overriding Base-Class Members in a Derived Class. Public, Protected and Private Inheritance. Direct Base Classes and Indirect Base Classes. Using Constructors and Destructors in Derived Classes. Implicit Derived-Class Object to Base-Class Object Conversion. Software Engineering with Inheritance. Composition vs. Inheritance. "Uses A" and "Knows A" Relationships. Case Study: Point, Circle, Cylinder. 20. C++ Virtual Functions and Polymorphism. Type Fields and switch Statements. Virtual Functions. Abstract Base Classes and Concrete Classes. Polymorphism. New Classes and Dynamic Binding. Virtual Destructors. Case Study: Inheriting Interface and Implementation. Polymorphism, virtual Functions and Dynamic Binding "Under the Hood." 21. C++ Stream Input/Output. Streams. Stream Output. Stream Input. Unformatted I/O with Read, gcount and Write. Stream Manipulators. Stream Format States. Stream Error States. Tying an Output Stream to an Input Stream. 22. C++ Templates. Class Templates. Class Templates and Nontype Parameters. Templates and Inheritance. Templates and Friends. Templates and Static Members. 23. C++ Exception Handling. When Exception Handling Should Be Used. Other Error-Handling Techniques. Basics of C++ Exception Handling: try, throw, catch. A Simple Exception-Handling Example: Divide by Zero. Throwing an Exception. Catching an Exception. Rethrowing an Exception. Exception Specifications. Processing Unexpected Exceptions. Stack Unwinding. Constructors, Destructors and Exception Handling. Exceptions and Inheritance. Processing new Failures. Class auto_ptr and Dynamic Memory Allocation. Standard Library Exception Hierarchy. 24. Introduction to Java Applications and Applets. Basics of a Typical Java Environment. General Notes about Java and This Book. A Simple Program: Printing a Line of Text. Another Java Application: Adding Integers. Sample Applets from the Java 2 Software Development Kit. A Simple Java Applet: Drawing a String. Two More Simple Applets: Drawing Strings and Lines. Another Java Applet: Adding Integers. 25. Beyond C & C++: Operators, Methods & Arrays in Java. Primitive Data Types and Keywords. Logical Operators. Method Definitions. Java API Packages. Random Number Generation. Example: A Game of Chance. Methods of Class JApplet. Declaring and Allocating Arrays. Examples Using Arrays. References and Reference Parameters. Multiple-Subscripted Arrays. 26. Java Object-Based Programming. Implementing a Time Abstract Data Type with a Class. Class Scope. Creating Packages. Initializing Class Objects: Constructors. Using Set and Get Methods. Using the this Reference. Finalizers. Static Class Members. 27. Java Object-Oriented Programming. Superclasses and Subclasses. protected Members. Relationship between Superclass Objects and Subclass Objects. Implicit Subclass-Object-to-Superclass-Object Conversion. Software Engineering with Inheritance. Composition vs. Inheritance. Introduction to Polymorphism. Type Fields and switch Statements. Dynamic Method Binding. Final Methods and Classes. Abstract Superclasses and Concrete Classes. Polymorphism Example. New Classes and Dynamic Binding. Case Study: Inheriting Interface and Implementation. Case Study: Creating and Using Interfaces. Inner Class Definitions. Notes on Inner Class Definitions. Type-Wrapper Classes for Primitive Types. 28. Java Graphics and Java 2D. Graphics Contexts and Graphics Objects. Color Control. Font Control. Drawing Lines, Rectangles, and Ovals. Drawing Arcs. Drawing Polygons and Polylines. The Java2D API. Java2D Shapes. 29. Java Graphical User Interface Components. Swing Overview. JLabel. Event Handling Model. JTextField and JPasswordField. JTextArea. JButton. JCheckBox. JComboBox. Mouse Event Handling. Layout Managers. Panels. Creating a Self-Contained Subclass of JPanel. Windows. Using Menus with Frames. 30. Java Multimedia: Images, Animation and Audio. Loading, Displaying and Scaling Images. Loading and Playing Audio Clips. Animating a Series of Images. Animation Issues. Customizing Applets via the HTML param Tag. Image Maps. Java Plug-In. Internet and World Wide Web Resources. A. Internet and Web Resources. C/C++ Resources. C++ Tutorials. C/C++ FAQs. Visual C++. comp.lang.c++. C/C++ Compilers. C++ Development Tools. Java Resources. Java Products. Java FAQs. Java Tutorials. Java Magazines. Java Applets. Multimedia. Java Newsgroups. B. C99 Internet and Web Resources. C99 Resources. C. Operator Precedence Chart. D. ASCII Character Set. E. Number Systems. Abbreviating Binary Numbers as Octal Numbers and Hexadecimal Numbers. Converting Octal Numbers and Hexadecimal Numbers to Binary Numbers. Converting from Binary, Octal, or Hexadecimal to Decimal. Converting from Decimal to Binary, Octal, or Hexadecimal. Negative Binary Numbers: Two's Complement Notation. Index.show more

About Harvey M. Deitel

DR. HARVEY M. DEITEL CEO of Deitel & Associates, Inc., has 39 years experience in the computing field including extensive industry and academic experience. He is one of the world's leading computer science instructors and seminar presenters. Dr. Deitel earned B.S. and M.S. degrees from the Massachusetts Institute of Technology and a Ph.D. from Boston University. He worked on the pioneering virtual memory operating systems projects at IBM and MIT that developed techniques widely implemented today in systems like UNIXA (R), Windows NTaA A , OS/2 and Linux. He has 20 years of college teaching experience including earning tenure and serving as the Chairman of the Computer Science Department at Boston College before founding Deitel & Associates, Inc. with Paul J. Deitel. He is author or co-author of dozens of books and multimedia packages and is currently writing many more. With translations published in Japanese, Russian, Spanish, Elementary Chinese, Advanced Chinese, Korean, French, Portuguese, Polish and Italian the Deitels' texts have earned international recognition. PAUL J. DEITEL, Executive Vice President of Deitel & Associates, Inc., is a graduate of the Massachusetts Institute of Technology's Sloan School of Management where he studied Information Technology. Through Deitel & Associates, Inc. he has delivered Java, C, C++, Internet and World Wide Web courses for industry clients including Compaq, Sun Microsystems, White Sands Missile Range, Rogue Wave Software, Computervision, Stratus, Fidelity, Cambridge Technology Partners, Open Environment Corporation, Once Wave, Hyperion Software, Lucent Technologies, Adra Systems, Entergy, CableData Systems, NASA at the Kennedy Space Center, the National Severe Storm Laboratory, IBM and many other organizations. He has lectured on C++ and Java for the Boston Chapter of the Association for Computing Machinery, and has taught satellite-based Java courses through a cooperative venture of Deitel & Associates, Inc., Prentice Hall and the Technology Education Network. He and his father, Dr. Harvey M. Deitel, are two of the world's best-selling Computer Science authors. The Deitels are co-authors of the best-selling introductory college computer-science programming language textbooks, C++ How to Program: Third Edition, Java How to Program: Third Edition, Visual Basic 6 How to Program (co-authored with Tem R. Nieto) and Internet and World Wide Web How to Program (co-authored with Tem R. Nieto). The Deitels are also co-authors of the C++ Multimedia Cyber Classroom: Third Edition (the first edition of this was Prentice Hall's first multimedia-based textbook), the Java 2 Multimedia Cyber Classroom: Third Edition, the Visual Basic 6 Multimedia Cyber Classroom and the Internet and World Wide Web programming Multimedia Cyber Classroom. The Deitels are also co-authors of The Complete C++ Training Course: Third Edition, The Complete Visual Basic 6 Training Course, The Complete Java 2 Training Course: Third Edition and The Complete Internet and World Wide Web Programming Training Course-these products each contain the corresponding How to Program Series textbook and the corresponding Multimedia Cyber Classroom.show more

Rating details

265 ratings
3.96 out of 5 stars
5 36% (95)
4 36% (96)
3 19% (51)
2 6% (15)
1 3% (8)
Book ratings by Goodreads
Goodreads is the world's largest site for readers with over 50 million reviews. We're featuring millions of their reader ratings on our book pages to help you find your new favourite book. Close X