Introduction to Programming in C++
Seventh Edition
Chapter 4:
Completing the Problem-Solving Process
Objectives
• Get numeric and character data from the keyboard
• Display information on the computer screen
• Write arithmetic expressions
• Type cast a value
• Write an assignment statement
• Code the algorithm into a program
An Introduction to Programming with C++, Seventh Edition 2
Displaying Messages on the Computer
Screen (cont’d.)
• A stream manipulator is used to manipulate (manage)
the characters in an input or output string
• endl is a stream manipulator that advances the cursor
to the next line on the screen
– Equivalent to pressing the Enter key
(carriage return and line feed)
An Introduction to Programming with C++, Seventh Edition 3
Finishing Step 4 in the Problem-Solving
Process
• The fourth step in the problem-solving process is to
code algorithm into a program
• Begin by declaring a memory location for each input,
processing, and output value in IPO chart
• Optionally initialize each value (highly preferred)
• Next, you code the instructions for the algorithm
An Introduction to Programming with C++, Seventh Edition 4
Finishing Step 4 in the Problem-Solving
Process (cont’d.)
Figure 4-1 Problem specification, IPO chart
information, and variable declaration
An Introduction to Programming with C++, Seventh Edition 5
Getting Data from the Keyboard
• C++ uses stream objects to perform input/output
operations
• A stream is a sequence of characters
• The cin object is used to obtain information from the
keyboard (program pauses while user enters data)
• The extraction operator (>>) takes information out of
cin object and stores it in internal memory
– Syntax: cin >> variableName;
An Introduction to Programming with C++, Seventh Edition 6
Getting Data from the Keyboard (cont’d.)
Figure 4-2 Relationship among the keyboard, cin object,
extraction operator, and internal memory
An Introduction to Programming with C++, Seventh Edition 7
Getting Data from the Keyboard (cont’d.)
Figure 4-3 How to use cin and >> to
get numeric or character data
An Introduction to Programming with C++, Seventh Edition 8
Getting Data from the Keyboard (cont’d.)
Figure 4-4 Input statements for
the Treyson Mobley problem
An Introduction to Programming with C++, Seventh Edition 9
Displaying Messages on the Computer
Screen
• You use a prompt (message) to let the user know what
data is to be entered
• The cout object is used with the insertion operator
(<<) to display information on the screen
• Information can be any combination of literal constants,
named constants, and variables
• Multiple items can be printed in the same statement
– Syntax: cout << item1 [<< item2 << itemN];
– Part in brackets is optional
An Introduction to Programming with C++, Seventh Edition 10
Displaying Messages on the Computer
Screen (cont’d.)
Figure 4-5 How to use the cout object
An Introduction to Programming with C++, Seventh Edition 11
Displaying Messages on the Computer
Screen (cont’d.)
Figure 4-6 Prompts and output statement
for the Treyson Mobley problem
An Introduction to Programming with C++, Seventh Edition 12
The static_cast Operator (cont’d.)
Figure 4-10 How to use the static_cast operator
An Introduction to Programming with C++, Seventh Edition 13
Arithmetic Operators in C++
• You can evaluate arithmetic expressions in C++ using
arithmetic operators
• Operators are negation (-), addition (+), subtraction
(-), multiplication (*), division (/), and modulus (%)
• Negation and subtraction use the same symbol, but
negation is a unary operator (one operand) and
subtraction is a binary operator (two operands)
• Modulus gives remainder when dividing two integers
An Introduction to Programming with C++, Seventh Edition 14
Arithmetic Operators in C++ (cont’d.)
• Each operator has a precedence: determines in which
order operators in an expression are evaluated
• Operators with lower-precedence numbers are
evaluated before higher ones
• Parentheses have lowest-precedence number, so they
can be used to override precedence order
• Operators with the same precedence number are
evaluated from left to right
An Introduction to Programming with C++, Seventh Edition 15
Arithmetic Operators in C++ (cont’d.)
Figure 4-7 Standard arithmetic operators and their order of precedence
An Introduction to Programming with C++, Seventh Edition 16
Arithmetic Operators in C++ (cont’d.)
Figure 4-8 Expressions containing more than one
operator having the same precedence
An Introduction to Programming with C++, Seventh Edition 17
Type Conversions in Arithmetic
Expressions
• Recall that the compiler will implicitly promote or
demote data types to match when possible
• Sometimes it is necessary to explicitly cast from one
data type into another
– Example: dividing two integers gives the result of integer
division (no remainder), but you would really like a
double result
– If one or both of the integers is a literal, you can cast it to
a double by adding .0 to the end of it
– If both are variables, you must use the static_cast
operator
An Introduction to Programming with C++, Seventh Edition 18
Type Conversions in Arithmetic
Expressions (cont’d.)
Figure 4-9 Examples of expressions that
require implicit type conversions
An Introduction to Programming with C++, Seventh Edition 19
The static_cast Operator
• Used to explicitly convert data from one data type to
another
• Called an explicit type conversion or type cast
• Syntax: static_cast<dataType>(data)
– data can be a literal constant, named constant, or
variable
– dataType is the data type to which you want the data
converted
An Introduction to Programming with C++, Seventh Edition 20
The static_cast Operator (cont’d.)
Figure 4-10 How to use the
static_cast operator (cont’d.)
An Introduction to Programming with C++, Seventh Edition 21
Assignment Statements
• You use an assignment statement to assign a value to a
variable while a program is running
• Syntax: variableName = expression
– The = symbol is the assignment operator
• Tells computer to evaluate expression on right side of
assignment operator and store result in variable on left
side of the operator
– expression can include one or more literal constants,
named constants, variables, or arithmetic operators
An Introduction to Programming with C++, Seventh Edition 22
Assignment Statements (cont’d.)
• Data type of expression in an assignment statement
must match data type of the variable
• If they don’t match, compiler will use implicit type
casting to get them to match
– Doesn’t always produce correct result
– Better to explicitly cast to correct data type yourself
• Remember:
– Declaration statement creates a new variable
– Assignment statement assigns a new value to an existing
variable
An Introduction to Programming with C++, Seventh Edition 23
Assignment Statements (cont’d.)
Figure 4-11 How to write an assignment statement
An Introduction to Programming with C++, Seventh Edition 24
Assignment Statements (cont’d.)
Figure 4-11 How to write an assignment statement (cont’d.)
An Introduction to Programming with C++, Seventh Edition 25
Assignment Statements (cont’d.)
Figure 4-12 Calculation statementsfor the Treyson Mobley problem
An Introduction to Programming with C++, Seventh Edition 26
Arithmetic Assignment Operators
• Allow you to abbreviate assignment statements that
contain an arithmetic operator
• Statement must be of the form variableName =
variableName arithmeticOperator value
• Abbreviated as variableName arithmeticOperator =
value
– Example: price = price*1.05; can be abbreviated
as price *= 1.05;
• Most common operators are += , -= , *= , /= , and
%=
An Introduction to Programming with C++, Seventh Edition 27
Arithmetic Assignment Operators (cont’d)
Figure 4-13 How to use an arithmetic assignment operator
An Introduction to Programming with C++, Seventh Edition 28
Step 5–Desk-Check the Program
• Fifth step is to desk-check the program to make sure
instructions were translated correctly
• You should desk-check the program using sample data
used to desk-check the algorithm
• Results of both desk-checks should be the same
• First, place names of the declared memory locations in
a new desk-check table along with each memory
location’s initial value
• Next, desk-check remaining C++ instructions in order,
recording any changes made to the variables
An Introduction to Programming with C++, Seventh Edition 29
Step 5–Desk-Check the Program (cont’d.)
Figure 4-14 Algorithm’s desk-check table from Chapter 2
Figure 4-15 Variable names and initial values entered in the
program’s desk-check table
An Introduction to Programming with C++, Seventh Edition 30
Step 5–Desk-Check the Program (cont’d.)
Figure 4-16 Input values entered in the program’s desk-check table
Figure 4-17 Desk-check table showing the result of the
total bill without liquor charge calculation
An Introduction to Programming with C++, Seventh Edition 31
Step 5–Desk-Check the Program (cont’d.)
Figure 4-18 Desk-check table showing the result of the tip calculation
Figure 4-19 Program’s desk-check table showing the
results of the second desk-check
An Introduction to Programming with C++, Seventh Edition 32
Step 6–Evaluate and Modify the Program
• Final step in the problem-solving process
• You evaluate a program by running the program on the
computer and entering the sample data used when
desk-checking the program
• If evaluation reveals errors (known as bugs), they must
be fixed
• Process of locating and fixing errors is called debugging
• Two types of bugs:
1. syntax errors
2. logic errors
An Introduction to Programming with C++, Seventh Edition 33
Step 6–Evaluate and Modify the Program
(cont’d.)
• Syntax errors
– result from breaking programming language’s rules; cause
compiler errors
• Logic errors
– don’t cause compiler errors; can be hard to identify
– Example: entering instructions in the wrong order
• Need a text editor to enter C++ instructions
• Instructions are called source code and are saved in source files
with extension .cpp
• Need a compiler to translate source code into machine code
(also called object code)
An Introduction to Programming with C++, Seventh Edition 34
Step 6–Evaluate and Modify the Program
(cont’d.)
• Compiler saves object code in object files with
extension .obj
• Linker combines .obj files with other machine code
necessary to run the program and produces an
executable file with extension .exe
• An IDE (integrated development environment) is a
development tool that contains both an editor and
compiler
• A command-line compiler contains only the compiler and
requires a separate editor to enter source code
An Introduction to Programming with C++, Seventh Edition 35
Step 6–Evaluate and Modify the Program
(cont’d.)
Figure 4-20 Process by which source code
is translated into executable code
An Introduction to Programming with C++, Seventh Edition 36
Step 6–Evaluate and Modify the Program
(cont’d.)
• A comment is a form of internal documentation; written
by placing // in front of the comment text
– Ignored by the compiler
– Considered good programming practice; makes code more
readable
• A #include directive allows you to merge the source
code in one file with that in another file
• The #include <iostream> is required when using
the cin or cout stream objects
– Not a statement, so no semicolon needed at the end
An Introduction to Programming with C++, Seventh Edition 37
Step 6–Evaluate and Modify the Program
(cont’d.)
• A using directive tells the compiler where in internal
memory it can find definitions of C++ keywords and
classes like double or string
• The using namespace std; directive indicates
that the definitions of the standard C++ keywords and
classes are located in the std (standard) namespace
– Is a statement, so semicolon required at the end
• A namespace is a special area in internal memory
An Introduction to Programming with C++, Seventh Edition 38
Step 6–Evaluate and Modify the Program
(cont’d.)
• A function is a block of code that performs a task
• Functions have parentheses following their name
(Example: main())
• Some functions require information between the
parentheses; others do not
• Every C++ program has one (and only one) main
function; this is where program execution begins
• Some functions return a value, and the data type they
return appears to the left of the function name
– Example: int main()
An Introduction to Programming with C++, Seventh Edition 39
Step 6–Evaluate and Modify the Program
(cont’d.)
• Other functions do not return a value, and void
appears to the left of the function name
• The return type, name, and parameters (information in
parentheses) constitute the function header, which
marks the beginning of the function
• After the function header, you enter the function’s code
• You enclose a function’s code in a set of braces ({})
• The code between the braces is called the function body
An Introduction to Programming with C++, Seventh Edition 40
Step 6–Evaluate and Modify the Program
(cont’d.)
Figure 4-21 Treyson Mobley program
An Introduction to Programming with C++, Seventh Edition 41
Step 6–Evaluate and Modify the Program
(cont’d.)
Figure 4-21 Treyson Mobley program (cont’d.)
An Introduction to Programming with C++, Seventh Edition 42
Step 6–Evaluate and Modify the Program
(cont’d.)
Figure 4-22 Command Prompt window
An Introduction to Programming with C++, Seventh Edition 43
Problem
• Create a C++ program that will determine the area of
the following:
– Circle
– Square
– Rectangle
– Triangle
An Introduction to Programming with C++, Seventh Edition 44