ST
INSTRUCTOR’S
UV
SOLUTIONS
IA
MANUAL
_A
PP
Walter Savitch
RO
Comprehensive Solutions Manual for
VE
Instructors and Students
D?
© Walter Savitch
All rights reserved. Reproduction or distribution without permission is prohibited.
??
©STUDYSTREAM
, Savitch, Absolute C++ 6/e: Chapter 1, Instructor’s Manual
Chapter 1
C++ Basics
ST
Key Terms
functions
program
int main()
UV
return 0
identifier
case-sensitive
keyword or reserved word
declare
floating-point number
IA
fixed width integer types
auto
unsigned
assignment statement
_A
uninitialized variable
assigning int values to double variables
mixing types
integers and Booleans
literal constant
PP
scientific notation or floating-point notation
quotes
C-string
string
escape sequence
RO
const
modifier
declared constant
mixing types
precedence rules
VE
integer division
the % operator
negative integers in division
type cast
type coercion
D?
increment operator
decrement operator
v++ versus ++v
cout
expression in a cout statement
??
spaces in output
newline character
deciding between \n and endl
format for double values
Copyright © 2016 Pearson Education Addison-Wesley. All rights reserved.
, Savitch, Absolute C++ 6/e: Chapter 1, Instructor’s Manual
magic formula
outputting money amounts
cerr
ST
cin
how cin works
separate numbers with spaces
when to comment
UV
#include,
preprocessor
namespace
using namespace
Brief Outline
IA
1.1 Introduction to C++
Origins of the C++ Language
C++ and Object-Oriented Programming
The Character of C++
_A
C++ Terminology
A Sample C++ Program
1.2 Variables, Expressions, and Assignment Statements
Identifiers
Variables
PP
Assignment Statements
More Assignment Statements
Assignment Compatibility
Literals
Escape Sequences
RO
Naming Constants
Introduction to the string class
Arithmetic Operators and Expressions
Integer and Floating-Point Division
Type Casting
Increment and Decrement Operators
VE
1.3 Console Input/Output
Output Using cout
New Lines in Output
Formatting for Numbers with a Decimal Point
Output with cerr
D?
Input Using cin
1.4 Program Style
Comments
1.5 Libraries and Namespaces
Libraries and include Directives
??
Namespaces
Copyright © 2016 Pearson Education Addison-Wesley. All rights reserved.
, Savitch, Absolute C++ 6/e: Chapter 1, Instructor’s Manual
1. Introduction and Teaching Suggestions
ST
This chapter introduces the students to the history of the C++ language and begins to tell them
about what types of programs can be written in C++ as well as the basic structure of a C++
program. During the discussions on compilation and running a program, care should be taken to
explain the process on the particular computer system that the students will be using, as different
UV
computing/development environments will each have their own specific directions that will need
to be followed. In the development of this instructor’s manual, a majority of the programs have
been compiled using g++ 4.4.7 on Ubuntu Linux, g++ 3.4 on cygwin, and Visual Studio .NET
2013. There are significant differences between the development environments and sometimes
on the compilers as well. This is especially the case with C++11 where command line options
may or may not be needed to compile, and some libraries may be unavailable for later sections
IA
(e.g. threading, regular expressions).
Simple programming elements are then introduced, starting with simple variable declarations,
data types, assignment statements, and eventually evolving into arithmetic expressions. String
_A
variables are not introduced in detail until Chapter 9, but an introduction is given and could be
elaborating upon if desired. If time allows, a discussion of how the computer stores data is
appropriate. While some of the operations on the primitives are familiar to students, operations
like modulus (%) are usually not and require additional explanation. Also, the functionality of
the increment and decrement operators requires attention. The issue of type casting is also
PP
introduced, which syntactically as well as conceptually can be difficult for students. Some
students that have previously learned C may use the old form of type casting (e.g. (int)), but
should be encouraged to use the newer form (e.g. static_cast<int>).
The section on programming style further introduces the ideas of conventions for naming of
RO
programmatic entities and the use and importance of commenting source code. Commenting is a
skill that students will need to develop and they should begin commenting their code from the
first program that they complete. Indentation is also discussed. However, many development
environments actually handle this automatically.
VE
2. Key Points
Compiler. The compiler is the program that translates source code into a language that a
computer can understand. Students should be exposed to how compiling works in their
particular development environment. If using an IDE, it is often instructive to show command-
D?
line compiling so students can a sense of a separate program being invoked to translate their code
into machine code. This process can seem “magical” when a button is simply pressed in an IDE
to compile a program.
Syntax and Semantics. When discussing any programming language, we describe both the
??
rules for writing the language, i.e. its grammar, as well as the interpretation of what has been
written, i.e. its semantics. For syntax, we have a compiler that will tell us when we have made a
mistake. We can correct the error and try compiling again. However, the bigger challenge may
Copyright © 2016 Pearson Education Addison-Wesley. All rights reserved.