عرض الفصل الثالث برمجة 1

advertisement
A First Book of C++
Chapter 3
Assignment and Interactive Input
Objectives
• In this chapter, you will learn about:
– Assignment Operators
– Formatted Output
– Mathematical Library Functions
– Interactive Keyboard Input
– Symbolic Constants
– Common Programming Errors
– Errors, Testing, and Debugging
A First Book of C++ 4th Edition
2
Assignment Operators
• Basic assignment operator
– Format: variable = expression;
– Computes value of expression on right of = sign,
assigns it to variable on left side of = sign
• If not initialized in a declaration statement, a variable
should be assigned a value before used in any
computation
• Variables can only store one value at a time
– Subsequent assignment statements will overwrite
previously assigned values
A First Book of C++ 4th Edition
3
Assignment Operators (cont'd.)
• Operand to right of = sign can be:
– A constant
– A variable
– A valid C++ expression
• Operand to left of = sign must be a variable
• If operand on right side is an expression:
– All variables in expression must have a value to get a
valid result from the assignment
A First Book of C++ 4th Edition
4
Assignment Operators (cont'd.)
• Expression: combination of constants and variables
that can be evaluated
– Examples:
• sum = 3 + 7;
• diff = 15 –6;
• product = .05 * 14.6;
• tally = count + 1;
• newtotal = 18.3 + total;
• average = sum / items;
• slope = (y2 – y1) / (x2 – x1);
A First Book of C++ 4th Edition
5
Assignment Operators (cont'd.)
A First Book of C++ 4th Edition
6
Coercion
• Value on right side of a C++ expression is
converted to data type of variable on the left side
• Example:
– If temp is an integer variable, the assignment
temp = 25.89;
causes integer value 25 to be stored in integer
variable temp
A First Book of C++ 4th Edition
7
Assignment Variations
• sum = sum + 10; is a valid C++ expression
– The value of sum + 10 is stored in variable sum
– Not a valid algebra equation
A First Book of C++ 4th Edition
8
Assignment Variations (cont'd.)
A First Book of C++ 4th Edition
9
Assignment Variations (cont'd.)
A First Book of C++ 4th Edition
10
Assignment Variations (cont'd.)
• Assignment expressions such as:
sum = sum + 25;
can be written by using the following shortcut
operators:
+=
-=
*=
/=
%=
• Example:
sum = sum + 10;
can be written as:
sum += 10;
A First Book of C++ 4th Edition
11
Accumulating
• The following statements add the numbers 96, 70,
85, and 60 in calculator fashion:
A First Book of C++ 4th Edition
12
Accumulating (cont'd.)
A First Book of C++ 4th Edition
13
Accumulating (cont'd.)
A First Book of C++ 4th Edition
14
Counting
• Has the form:
variable = variable + fixedNumber;
– Each time statement is executed, value of variable is
increased by a fixed amount
• Increment operators (++), (--)
– Unary operator for special case when variable is
increased or decreased by 1
– Using the increment operator, the expression:
variable = variable + 1;
can be replaced by
either: ++variable; or variable++;
A First Book of C++ 4th Edition
15
Counting (cont'd.)
• Examples of counting statements:
i= i + 1;
n = n + 1;
count = count + 1;
j = j + 2;
m = m + 2;
kk = kk + 3;
A First Book of C++ 4th Edition
16
Counting (cont'd.)
• Examples of the increment operator:
A First Book of C++ 4th Edition
17
Counting (cont'd.)
A First Book of C++ 4th Edition
18
Counting (cont'd.)
• Prefix increment operator: the ++ or -- operator
appears before a variable
̶ The expression k = ++n performs two actions:
n = n + 1;
// increment n first
k = n;
// assign n’s value to k
• Postfix increment operator: the ++ or -- operator
appears after a variable
̶ The expression k = n++ works differently:
k = n;
// assign n’s value to k
n = n + 1;
// and then increment n
A First Book of C++ 4th Edition
19
Formatted Output
• A program must present results attractively
• Field width manipulators: control format of numbers
displayed by cout
– Manipulators included in the output stream
A First Book of C++ 4th Edition
20
Formatted Output (cont'd.)
A First Book of C++ 4th Edition
21
A First Book of C++ 4th Edition
22
The setiosflags() Manipulator
• Field justification manipulator
• Example: cout << “|” << setw(10) <<
setiosflags(ios::left) << 142 << “|”;
A First Book of C++ 4th Edition
23
Hexadecimal and Octal I/O
• oct and hex manipulators are used for conversions
to octal and hexadecimal
• Display of integer values in one of three possible
numbering systems (decimal, octal, and
hexadecimal) doesn’t affect how the number is
stored in a computer
– All numbers are stored by using the computer’s
internal codes
A First Book of C++ 4th Edition
24
Hexadecimal and Octal I/O (cont'd.)
A First Book of C++ 4th Edition
25
Hexadecimal and Octal I/O (cont'd.)
A First Book of C++ 4th Edition
26
Hexadecimal and Octal I/O (cont'd.)
A First Book of C++ 4th Edition
27
Relationship between Input, Storage, and Display of Integers
A First Book of C++ 4th Edition
28
Hexadecimal and Octal I/O (cont'd.)
A First Book of C++ 4th Edition
29
Mathematical Library Functions
• Standard preprogrammed functions that can be
included in a program
– Example: sqrt(number) calculates the square root
of number
• Table 3.5 lists more commonly used mathematical
functions provided in C++
– To access these functions in a program, the header
file cmath must be used
– Format: #include <cmath> <- no semicolon
A First Book of C++ 4th Edition
30
Mathematical Library Functions
(cont'd.)
• Before using a C++ mathematical function, the
programmer must know:
– Name of the desired mathematical function
– What the function does
– Type of data required by the function
– Data type of the result returned by the function
A First Book of C++ 4th Edition
31
Mathematical Library Functions
(cont'd.)
A First Book of C++ 4th Edition
32
Mathematical Library Functions
(cont'd.)
A First Book of C++ 4th Edition
33
Mathematical Library Functions
(cont'd.)
A First Book of C++ 4th Edition
34
Mathematical Library Functions
(cont'd.)
A First Book of C++ 4th Edition
35
Casts
• Cast: forces conversion of a value to another type
– Two versions: compile-time and runtime
• Compile-time cast: unary operator
– Syntax: dataType (expression)
– expression converted to data type of dataType
• Run-time cast: requested conversion checked at
runtime, applied if valid
– Syntax: staticCast<dataType> (expression)
– expression converted to data type dataType
A First Book of C++ 4th Edition
36
Interactive Keyboard Input
• If a program only executes once, data can be
included directly in the program
– If data changes, program must be rewritten
– Capability needed to enter different data
• cin object: used to enter data while a program is
executing
– Example: cin >> num1;
– Statement stops program execution and accepts data
from the keyboard
A First Book of C++ 4th Edition
37
Interactive Keyboard Input (cont'd.)
A First Book of C++ 4th Edition
38
Interactive Keyboard Input (cont'd.)
A First Book of C++ 4th Edition
39
Interactive Keyboard Input (cont'd.)
• First cout statement in Program 3.8 prints a string
– Tells the person at the terminal what to type
– A string used in this manner is called a prompt
• Next statement, cin, pauses computer
– Waits for user to type a value
– User signals the end of data entry by pressing Enter
key
– Entered value stored in variable to right of extraction
symbol
• Computer comes out of pause and goes to next
cout statement
A First Book of C++ 4th Edition
40
Interactive Keyboard Input (cont'd.)
A First Book of C++ 4th Edition
41
Interactive Keyboard Input (cont'd.)
A First Book of C++ 4th Edition
42
Interactive Keyboard Input (cont'd.)
• The following sample run was made with Program
3.12; the bold code indicates what the user enters:
A First Book of C++ 4th Edition
43
Interactive Keyboard Input (cont'd.)
• In Program 3.12, each time cin is invoked, it’s used
to store one value in a variable.
• The cin object, however, can be used to enter and
store as many values as there are extraction
operators and variables to hold the entered data.
A First Book of C++ 4th Edition
44
Interactive Keyboard Input (cont'd.)
• For example, the statement cin >> num1 >> num2;
results in two values being read from the keyboard
and assigned to the variables num1 and num2.
• If the data entered at the keyboard is 0.052 &
245.79, the variables num1 and num2 contain the
values 0.052 and 245.79, respectively.
A First Book of C++ 4th Edition
45
Interactive Keyboard Input (cont'd.)
• The same spacing is applicable to entering
character data; that is, the extraction operator, >> ,
skips blank spaces and stores the next nonblank
character in a character variable.
• For example, in response to these statements,
char ch1, ch2, ch3 ; // declare three character variables
cin >> ch1 >> ch2 >> ch3 ; // accept three characters
A First Book of C++ 4th Edition
46
Interactive Keyboard Input (cont'd.)
• The input a, b, c causes the letter a to be stored in
the variable ch1, the letter b to be stored in the
variable ch2, and the letter c to be stored in the
variable ch3.
• Because a character variable can be used to store
only one character, the following input, without
spaces, can also be used: abc.
A First Book of C++ 4th Edition
47
Interactive Keyboard Input (cont'd.)
A First Book of C++ 4th Edition
48
A First Look at User-Input Validation
• A well-constructed program should validate all user
input
– Ensures that program does not crash or produce
nonsensical output
• Robust programs: programs that detect and respond
effectively to unexpected user input
– Also known as “bulletproof” programs
• User-input validation: checking entered data and
providing user with a way to reenter invalid data
A First Book of C++ 4th Edition
49
A First Look at User-Input Validation
• The first problem with a program becomes evident
when a user enters a nonnumerical value.
• For example, examine the following sample run of
Program 3.13:
A First Book of C++ 4th Edition
50
A First Look at User-Input Validation
• This output occurs because the conversion of the
second input number results in assigning the integer
value 20 to num2 and the value -858993460 to
num3.
• The -858993460 value results because an invalid
character, the decimal point, is assigned to a
variable that expects an integer value.
A First Book of C++ 4th Edition
51
Symbolic Constants
• Magic numbers: literal data used in a program
– Some have general meaning in context of program
• Tax rate in a program to calculate taxes
– Others have general meaning beyond the context of
the program
• π = 3.1416; Euler’s number = 2.71828
• Constants can be assigned symbolic names
const float
PI = 3.1416f;
const double SALESTAX = 0.05;
A First Book of C++ 4th Edition
52
Symbolic Constants (cont'd.)
• const: qualifier specifies that the declared identifier
cannot be changed
• A const identifier can be used in any C++
statement in place of number it represents
circum = 2 * PI * radius;
amount = SALESTAX * purchase;
• const identifiers commonly referred to as:
– Symbolic constants
– Named constants
A First Book of C++ 4th Edition
53
Placement of Statements
• A variable or symbolic constant must be declared
before it is used
• C++ permits preprocessor directives and declaration
statements to be placed anywhere in program
– Doing so results in very poor program structure
A First Book of C++ 4th Edition
54
Placement of Statements (cont'd.)
• As a matter of good programming practice, the order
of statements should be:
preprocessor directives
int main()
{
// symbolic constants
// variable declarations
// other executable statements
return 0;
}
A First Book of C++ 4th Edition
55
Placement of Statements (cont'd.)
A First Book of C++ 4th Edition
56
Common Programming Errors
• Forgetting to assign or initialize values for all
variables before they are used in an expression
• Using a mathematical library function without
including the preprocessor statement #include
<cmath>
• Using a library function without providing the correct
number of arguments of the proper data type
• Applying increment or decrement operator to an
expression
A First Book of C++ 4th Edition
57
Common Programming Errors (cont'd.)
• Forgetting to use the extraction operator, >>, to
separate variables in a cin statement
• Using an increment or decrement operator with
variables that appear more than once in the same
statement
• Being unwilling to test a program in depth
A First Book of C++ 4th Edition
58
Summary
• Expression: sequence of operands separated by
operators
• Expressions are evaluated according to precedence
and associativity of its operands
• The assignment symbol, =, is an operator
– Assigns a value to variable
– Multiple assignments allowed in one statement
• Increment operator(++): adds 1 to a variable
• Decrement operator(--): subtracts 1 from a variable
A First Book of C++ 4th Edition
59
Summary (cont'd.)
• Increment and decrement operators can be used as
prefixes or postfixes
• C++ provides library functions for various
mathematical functions
– These functions operate on their arguments to
calculate a single value
– Arguments, separated by commas, included within
parentheses following function’s name
• Functions may be included within larger expressions
A First Book of C++ 4th Edition
60
Summary (cont'd.)
• cin object used for data input
• cin temporarily suspends statement execution until
data entered for variables in cin function
• Good programming practice: prior to a cin
statement, display message alerting user to type
and number of data items to be entered
– Message called a prompt
• Values can be equated to a single constant by using
the const keyword
A First Book of C++ 4th Edition
61
Chapter Supplement: Errors, Testing,
and Debugging
• Program errors can be detected:
–
–
–
–
Before a program is compiled
While the program is being compiled
While the program is running
After the program has been run and the output is
being examined
• Desk checking
– Method for detecting errors before a program is
compiled
• Program verification and testing
A First Book of C++ 4th Edition
62
Compile-Time and Runtime Errors
• Compile-time errors
– Errors detected while a program is being compiled
– No one but the programmer ever knows they
occurred
• Runtime errors
– Errors that occur while a program is running
– More troubling because they occur while a user is
running the program
– Can be caused by program or hardware failures
A First Book of C++ 4th Edition
63
Syntax and Logic Errors
• Syntax error
– Error in ordering valid language elements in a
statement or the attempt to use invalid language
elements
• Logic error
– Characterized by erroneous, unexpected, or
unintentional output that’s a result of some flaw in the
program’s logic
A First Book of C++ 4th Edition
64
Testing and Debugging
• Program testing should be well thought out to
maximize the possibility of locating errors
• Bug: a program error
• Debugging
– Process of isolating and correcting the error and
verifying the correction
• Program tracing
– Process of imitating the computer by executing each
statement by hand as the computer would
• Echo printing
A First Book of C++ 4th Edition
65
Download