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
Desk-check a program
Evaluate and modify a program
An Introduction to Programming with C++, Seventh Edition
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
Finishing Step 4 in the Problem-Solving
Process (contd.)
Figure 4-1 Problem specification, IPO chart
information, and variable declaration
An Introduction to Programming with C++, Seventh Edition
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
Getting Data from the Keyboard (contd.)
Figure 4-2 Relationship among the keyboard, cin object,
extraction operator, and internal memory
An Introduction to Programming with C++, Seventh Edition
Getting Data from the Keyboard (contd.)
Figure 4-3 How to use cin and >> to
get numeric or character data
An Introduction to Programming with C++, Seventh Edition
Getting Data from the Keyboard (contd.)
Figure 4-4 Input statements for
the Treyson Mobley problem
An Introduction to Programming with C++, Seventh Edition
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
Displaying Messages on the Computer
Screen (contd.)
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
10
Displaying Messages on the Computer
Screen (contd.)
Figure 4-5 How to use the cout object
An Introduction to Programming with C++, Seventh Edition
11
Displaying Messages on the Computer
Screen (contd.)
Figure 4-6 Prompts and output statement
for the Treyson Mobley problem
An Introduction to Programming with C++, Seventh Edition
12
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
13
Arithmetic Operators in C++ (contd.)
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
14
Arithmetic Operators in C++ (contd.)
Figure 4-7 Standard arithmetic operators and their order of precedence
An Introduction to Programming with C++, Seventh Edition
15
Arithmetic Operators in C++ (contd.)
Figure 4-8 Expressions containing more than one
operator having the same precedence
An Introduction to Programming with C++, Seventh Edition
16
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
17
Type Conversions in Arithmetic
Expressions (contd.)
Figure 4-9 Examples of expressions that
require implicit type conversions
An Introduction to Programming with C++, Seventh Edition
18
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
19
The static_cast Operator (contd.)
Figure 4-10 How to use the static_cast operator
An Introduction to Programming with C++, Seventh Edition
20
The static_cast Operator (contd.)
Figure 4-10 How to use the
static_cast operator (contd.)
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 (contd.)
Data type of expression in an assignment
statement must match data type of the variable
If they dont match, compiler will use implicit
type casting to get them to match
Doesnt 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 (contd.)
Figure 4-11 How to write an assignment statement
An Introduction to Programming with C++, Seventh Edition
24
Assignment Statements (contd.)
Figure 4-11 How to write an assignment statement (contd.)
An Introduction to Programming with C++, Seventh Edition
25
Assignment Statements (contd.)
Figure 4-12 Calculation statements
for 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 (contd)
Figure 4-13 How to use an arithmetic assignment operator
An Introduction to Programming with C++, Seventh Edition
28
Step 5Desk-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 locations 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 5Desk-Check the Program (contd.)
Figure 4-14 Algorithms desk-check table from Chapter 2
Figure 4-15 Variable names and initial values entered in the
programs desk-check table
An Introduction to Programming with C++, Seventh Edition
30
Step 5Desk-Check the Program (contd.)
Figure 4-16 Input values entered in the programs 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 5Desk-Check the Program (contd.)
Figure 4-18 Desk-check table showing the result of the tip calculation
Figure 4-19 Programs desk-check table showing the
results of the second desk-check
An Introduction to Programming with C++, Seventh Edition
32
Step 6Evaluate 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: syntax errors and logic
errors
An Introduction to Programming with C++, Seventh Edition
33
Step 6Evaluate and Modify the Program
(contd.)
Syntax errors result from breaking
programming languages rules; cause compiler
errors
Logic errors dont 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 6Evaluate and Modify the Program
(contd.)
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 6Evaluate and Modify the Program
(contd.)
Figure 4-20 Process by which source code
is translated into executable code
An Introduction to Programming with C++, Seventh Edition
36
Step 6Evaluate and Modify the Program
(contd.)
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 6Evaluate and Modify the Program
(contd.)
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 6Evaluate and Modify the Program
(contd.)
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 6Evaluate and Modify the Program
(contd.)
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 functions
code
You enclose a functions 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 6Evaluate and Modify the Program
(contd.)
Figure 4-21 Treyson Mobley program
An Introduction to Programming with C++, Seventh Edition
41
Step 6Evaluate and Modify the Program
(contd.)
Figure 4-21 Treyson Mobley program (contd.)
An Introduction to Programming with C++, Seventh Edition
42
Step 6Evaluate and Modify the Program
(contd.)
Figure 4-22 Command Prompt window
An Introduction to Programming with C++, Seventh Edition
43
Summary
Fourth step in problem-solving process is
coding the algorithm into a program
C++ uses stream objects for standard
input/output operations
Use cin with extraction operator (>>) to get
numeric or character data from the keyboard
Use cout with insertion operator (<<) to
display information on the screen
The endl stream manipulator advances
cursor to next line
An Introduction to Programming with C++, Seventh Edition
44
Summary (contd.)
You do calculations by writing arithmetic
expressions using arithmetic operators
Each operator has a precedence: determines
the order of evaluation in an expression
Parentheses are used to override this order
Compiler implicitly casts data types when
possible, but you should explicitly cast to
ensure correctness
Use the static_cast operator to explicitly
cast variables from one data type to another
An Introduction to Programming with C++, Seventh Edition
45
Summary (contd.)
An assignment statement assigns a value to
a variable during runtime
The expression on the right side of the
assignment operator (=) in an assignment
statement is stored in the variable on its left
Fifth step of the problem-solving process is to
desk-check the program using the same data
used to desk-check the algorithm
The sixth step is to evaluate and modify (if
necessary) the program
An Introduction to Programming with C++, Seventh Edition
46
Summary (contd.)
Errors (called bugs) can either be syntax errors
or logic errors
You need a text editor and compiler to enter C+
+ instructions and compile them into a program
C++ instructions are called source code and
are saved in source files with the extension .cpp
The compiler translates source code into
machine code, also called object code
A linker produces an executable file that
contains all machine code necessary to run a
C++ program
An Introduction to Programming with C++, Seventh Edition
47
Summary (contd.)
Programmers use comments to document a
program internally
Comments are not processed by the compiler
The #include <filename> directive allows you
to include multiple source files in a program
The using namespace std; directive tells the
compiler where definitions of standard C++
keywords and classes are in internal memory
A namespace is a special area in the
computers internal memory
An Introduction to Programming with C++, Seventh Edition
48
Summary (contd.)
Execution of every C++ program begins with
the main() function
The first line of a function is the function header
The function body follows the header and is
enclosed in braces
Some functions return a data type; others
return void
Arithmetic assignment operators can be used to
abbreviate certain assignment statements with
arithmetic operators in them
An Introduction to Programming with C++, Seventh Edition
49
Lab 4-1: Stop and Analyze
Figure 4-23 Examples for Lab 4-1
An Introduction to Programming with C++, Seventh Edition
50
Lab 4-2: Plan and Create
Plan and create an algorithm that displays
the total amount a student owes for a
semester
Figure 4-24 Problem specification for Lab 4-2
An Introduction to Programming with C++, Seventh Edition
51
Lab 4-3: Modify
Modify the program in Lab 4-2 to account for
Hoover College having courses that can be
0.5, 1, 2, or 3 semester hours
Additionally, fee per hour is raised to $105
Test the program twice, using 9.5 and 11 as
the number of hours enrolled
An Introduction to Programming with C++, Seventh Edition
52
Lab 4-4: Desk-Check
Desk-check the three lines of code shown in
Figure 4-31
Figure 4-31 Code for Lab 4-4
An Introduction to Programming with C++, Seventh Edition
53
Lab 4-5: Debug
Follow the instructions for starting C++ and
opening the Lab4-5.cpp file
If necessary, make the system(pause);
statement a comment, and then save the
program
Run and then debug the program
An Introduction to Programming with C++, Seventh Edition
54