Overview of C++

advertisement
Chapter 2
Introduction to C++
1
Topics
2.1 Parts of a C++ Program
2.2 The cout Object
2.3 The #include Directive
2.4 Variables and Constants
2.5 Identifiers
2.6 Integer Data Types
2.7 The char Data Type
2.8 Floating-Point Data Types
2
Topics (continued)
2.9 The bool Data Type
2.10 Determining the Size of a Data Type
2.11 Variable Assignments and Initialization
2.12 Scope
2.13 Arithmetic Operators
2.14 Comments
2.15 Programming Style
2.16 Standard and Prestandard C++
3
2.1 Parts of a C++ Program
comment
preprocessor
directive
which namespace
to use
// sample C++ program
#include <iostream>
using namespace std;
beginning of
int main()
function named main
beginning of
{
block for main
output
statement
cout << "Hello, there!";
return 0;
string
constant
}
end of block
send 0 to
for main
operating system
4
Special Characters
Character
Name
Meaning
//
Double forward
slash
Pound sign
Beginning of a comment
#
< >
( )
{ }
" "
;
Beginning of preprocessor
directive
Open/close brackets Enclose filename in #include
Open/close
Used when naming a
parentheses
function
Open/close brace
Encloses a group of
statements
Open/close
Encloses string of
quotation marks
characters
Semicolon
End of a programming
statement
5
Ex.
int main()
}
// A crazy mixed up program
return 0;
#include <iostream>
cout<<“In 1492 Columbus sailed the
ocean blue.”;
{
using namespace std;
6
2.2 The cout Object
 Displays information on computer screen
 Uses << to send information to cout:
cout << "Hello, there!";
 Can be used to send > 1 item to cout:
cout << "Hello, " << "there!";
Or:
cout << "Hello, ";
cout << "there!";
7
The cout Object
 To get multiple lines of output on screen:
- Use endl
cout << "Hello, there!" << endl;
- Use \n in output string
cout << "Hello, there!\n";
8
Common Escape Sequences
Escape
sequence
Name
Description
\n
Newline
Causes the cursor to go to the next line for
subsequent print
\t
Horizontal tab
Causes the cursor to skip over to the next
tab stop
\a
Alarm
Causes the computer to beep
\b
Backspace
Causes the cursor to back up, or move left
one position
\r
Return
Causes the cursor to go to the beginning of
the current line, not the next line
\\
Backslash
Causes a backslash to be printed
\’
Single quote
Causes a single quotation mark to be
printed
\’’
Double quota
Causes a double quotation mark to be
printed.
9
2.3 The #include Directive
 Inserts the contents of another file into the
program
 Is a preprocessor directive
• NOT part of the C++ language
• #include lines not seen by compiler
 Do not use ; at end of #include line
• Example:
#include <iostream>
No ;
goes here
10
2.4 Variables and Constants
 Variable
• Has a name and a type of data it can hold
data type
char letter;
variable
name
• Is used to reference a location in memory where a value
can be stored
• Must be defined before it can be used
• This value can be changed (i.e. can “vary”)
11
Variables
• If a new value is stored in the variable, it
replaces the previous value
• The previous value is overwritten and can no
longer be retrieved
int age;
age = 17;
cout << age;
age = 18;
cout << age;
//
//
//
//
age is 17
Displays 17
Now age is 18
Displays 18
12
Constants
 Constant
• Data item whose value does not change during
program execution
• Constants are also called literals
‘A’
"Hello"
12
3.14
//
//
//
//
character constant
string constant
integer constant
floating-point constant
13
Example
// This program has literals and a variable.
#include <iostream>
using namespace std;
String literals
int main()
{
int apples;
Integer literal
apples = 20;
cout << "Today we sold " << apples
<< " bushels of apples.\n";
return 0;
}
14
2.5 Identifiers
 Programmer-chosen names to represent parts of
the program:
• variables, functions, etc.
 Name should represent the use of the variable
 Cannot use C++ key words as identifiers
 Must begin with alpha character or _, followed by
alpha, numeric, or _
 Upper- and lower-case characters are distinct
15
The rules for legal Identifiers
 The first character must be one of the letters
a through z, A through Z, or an underscore
character _.
 After the first character you may use the
letters a through z or A through Z, the digits 0
through 9, or underscores.
 Uppercase and lowercase characters are
distinct.
 No space in a variable name
16
Valid and Invalid Identifiers
IDENTIFIER
VALID?
REASON IF INVALID
totalSales
total_Sales
total.Sales
4thQtrSales
totalSale$
17
2.6 Data Types
 Data type determines the kind of information
that a data may have
 Two kinds of data type
• Numeric
 Integer
 Floating point
• character
18
Integer Data Types
 Integer data type is designed to hold whole
numbers
• Can be signed or unsigned:

12
-6
+3
• Available in different sizes (number of bytes):
short, int, and long
• Size of short  size of int  size of long
19
Example
//This program uses some of
//the different integer type variables.
#include <iostream>
using namespace std;
int main()
{
int length, width, height;
unsigned int area;
long volume;
length = 100;
width = 100;
height = 100;
area = 10000;
volume = 1000000;
……
return 0;
}
20
Defining Variables
 Variables of the same type can be defined
- On separate lines:
int length;
int width;
unsigned int area;
- On the same line:
int length, width;
unsigned int area;
 Variables of different types must be in different
definitions
21
Integral Constants
 Integer constants stored in as ints by default
 To store an integer constant in a long memory
location, put ‘L’ at the end of the number: 1234L
 Constants that begin with ‘0’ (zero) are base 8:
075
 Constants that begin with ‘0x’ are base 16:
0x75A
22
2.7 The char Data Type
 Used to hold characters or very small integer
values
 Usually 1 byte of memory
 Numeric value of character from character set
is stored in memory:
CODE:
char letter;
letter = 'C';
MEMORY:
letter
67
23
The char Data Type
ASCII: is a method for encoding characters
A
B
C
Is stored in memory as
65
66
67
Computer displays the character that corresponds with the numeric code
24
Character Literals
 Character literals
• Enclosed in single quotation marks
 String literals
• Enclosed in double quotation marks
 Example:
‘A’ --- character literals
“A” --- string literals
25
Character Strings
 Can store a series of characters in consecutive
memory locations:
"Hello"
 Stored with the null terminator, \0, at the end:
H
e
l
l
o
\0
 Comprised of the characters between the " “
26
Example
‘A’
A
65
are stored as
“A”
A
\0
65
0
char letter;
letter =‘A’; //This will work
letter =“A”; //This will not work
All escape sequence, say \n, internally, are just 1 byte
27
2.8 Floating-Point Data Types
 Designed to hold real numbers
12.45
-3.8
 Stored in a form similar to scientific notation
 All numbers are signed
 Available in different sizes (number of bytes):
float, double, and long double
 Size of float  size of double
 size of long double
28
Floating-point Constants
 Can be represented in
- Fixed point (decimal) notation:
31.4159
0.0000625
- E notation:
3.14159e1
6.25e-5
 Are double by default
 Can be forced to be float (3.14159f) or long
double (0.0000625L)
29
Assigning Floating-Point Values to
Integer Variables
 When a floating-point value (variable) is
assigned to integer variable, the fractional
part of the value is discarded.
int number;
float f;
f=7.9;
number=7.9; //assigns 7 to number
number = f; //assigns 7 to number
30
2.9 The bool Data Type
 Represents values that are true or false
 bool variables are stored as small integers
 false is represented by 0, true by 1:
bool allDone = true;
bool finished = false;
allDone
finished
1
0
31
Example
// A program for demonstrating boolean variables
#include <iostream>
using namespace std;
int main()
{
bool boolValue;
boolValue = true;
cout << boolValue << endl;
boolValue = false;
cout << boolValue << endl;
return 0;
1
0
}
32
2.10 Determining the Size of a
Data Type
The sizeof operator gives the size of any data type or
variable:
float amount;
cout << "A float is stored in "
<< sizeof(float) << "bytes\n";
cout << "Variable amount is stored in "
<< sizeof(amount)
<< "bytes\n";
33
Example
// This program determines the size of integers, long integers, and long doubles.
#include <iostream>
using namespace std;
int main()
{
long double apple;
cout << "The size of an integer is " << sizeof(int);
cout << " bytes.\n";
cout << "The size of a long integer is " << sizeof(long);
cout << " bytes.\n";
cout << "An apple can be eaten in " << sizeof(apple);
cout << " bytes!\n";
return 0;
}
The size of an integer is 4 bytes.
The size of a long integer is 4 bytes.
An apple can be eaten in 8 bytes!
34
2.11 Variable Assignments and
Initialization
Assignment:
 Uses the = operator
 Has a single variable on the left side and a
value (constant, variable, or expression) on
the right side
 Copies the value on the right into the variable
on the left:
item = 12;
Operand
lvalue
operator
Operand
rvalue
35
Variable Assignments and
Initialization
 Initialize a variable: assign it a value when it
is defined:
int length = 12;
float interestRate=12.9;
char stock=‘D’;
long customerNum=459L;
 Can initialize some or all variables:
int length = 12, width = 5, area;
36
2.12 Scope
 The scope of a variable: where the program can
access the variable
 A variable cannot be used before it is defined
// This program can't find its variable.
#include <iostream>
using namespace std;
int main()
{
cout << value; // ERROR! value not defined yet!
int value = 100;
return 0;
}
37
2.13 Arithmetic Operators
 Used for performing numeric calculations
 C++ has unary, binary, and ternary
operators:
• unary (1 operand)
-5
• binary (2 operands) 13 - 7
• ternary (3 operands) exp1 ? exp2 : exp3
38
Binary Arithmetic Operators
SYMBOL
OPERATION
EXAMPLE
VALUE OF
ans
+
addition
ans = 7 + 3;
10
-
subtraction
ans = 7 - 3;
4
*
multiplication
ans = 7 * 3;
21
/
division
ans = 7 / 3;
2
%
modulus
ans = 7 % 3;
1
39
/ Operator
 / (division) operator performs integer division
if both operands are integers
cout << 13 / 5;
cout << 91 / 7;
// displays 2
// displays 13
 If either operand is floating point, the result is
floating point
cout << 13 / 5.0;
cout << 91.0 / 7;
// displays 2.6
// displays 13.0
40
% Operator
 % (modulus) operator computes the remainder
resulting from integer division
cout << 13 % 5;
// displays 3
 % requires integers for both operands
cout << 13 % 5.0; // error
41
Example
// This program calculates hourly wages
#include <iostream>
using namespace std;
int main()
{
float regWages,
basePay = 19.25,
regHours = 40.0,
otWages,
otPay = 28.78,
otHours = 10,
totalWages;
// calculated regular wages
// base pay rate
// hours worked less overtime
// overtime wages
// overtime pay rate
// overtime hours worked
// total wages
regWages = basePay * regHours;
otWages = otPay * otHours;
totalWages = regWages + otWages;
cout << "Wages for this week are $" << totalWages << endl;
return 0;
}
Wages for this week are $1057.8
42
2.14 Comments
 Used to document parts of the program
 Intended for persons reading the source code
of the program:
• Indicate the purpose of the program
• Describe the use of variables
• Explain complex sections of code
 Are ignored by the compiler
43
C++ Style Comments
Begin with // through to the end of line:
int length = 12; // length in inches
int width = 15; // width in inches
int area;
// calculated area
// calculate rectangle area
area = length * width;
44
C-Style Comments
 Begin with /*, end with */
 Can span multiple lines:
/* this is a multi-line
C-style comment
*/
 Can be used like C++ style comments:
int area;
/* calculated area */
• Be careful not reverse the beginning symbol with the ending symbol
•
Be sure not to forget the ending symbol
45
2.15 Programming Style
 The visual organization of the source code
 Includes the use of spaces, tabs, and blank
lines
 Does not affect the syntax of the program
 Affects the readability of the source code
46
Programming Style
Common elements to improve readability:
 Braces { } aligned vertically
 Indentation of statements within a set of
braces
 Blank lines between declaration and other
statements
 Long statements wrapped over multiple
lines with aligned operators
47
Example
#include <iostream>
using namespace std;int main(){float shares=220.0;
float avgPrice=14.67;cout<<"There were "<<shares
<<" shares sold at $"<<avgPrice<<" per share.\n";
return 0;}
48
Example
// This example is much more readable
#include <iostream>
using namespace std;
int main()
{
float shares = 220.0;
float avgPrice = 14.67;
cout << "There were " << shares << " shares sold at $";
cout << avgPrice << " per share.\n";
return 0;
}
49
2.16 Standard and Prestandard
C++
Older-style C++ programs:
• Use .h at end of header files:
#include <iostream.h>
• Do not use using namespace convention
• May not compile with a standard C++ compiler
50
Class review
 Cout : displays information on computer screen
cout << "Hello, there!" << endl;
cout << "Hello, there!\n";
 #include: a preprocessor directive
#include <iostream>
 Variables and Constants
char letter = ‘A’;
 Identifiers
 Data Type
• Integer, floating-point, character,
string, boolean
51
Class review
 Data Type
• Integer, floating-point, character, string, boolean
 Size of data type
sizeof(float);
 Variable assignments and Initialization
item = 12;
 Scope of variable
• A variable cannot be used before it is defined
 Arithmetic operations
+,-,*,/,%
 Comments
//, /* */
52
Download