Vous êtes sur la page 1sur 70

Chapter 2.

Introduction to C++

For Educational Purpose Only. Not to be circulated without this banner.

Starting Out with C++, 3rd Edition

2.1 The Parts of a C++ Program

C++ programs have parts and components


that serve specific purposes.
For Educational Purpose Only. Not to be circulated without this banner.

Starting Out with C++, 3rd Edition

Program 2-1
//A simple C++ program
#include <iostream.h>
For Educational
Only. Not to be circulated without this banner.
void Purpose
main (void)

{
cout<< Programming is great fun!;
}

Program Output:
Programming is great fun!
3

Starting Out with C++, 3rd Edition

For

Table 2-1
Character
//
#
<>

Name
double slash
Pound sign

Opening and
closing
brackets
()
Opening and
Educational Purpose
Only.
closing
parenthesis
{}
Opening and
closing braces
""
Opening and
closing
quotation
marks
;
Semicolon

Description
Marks the beginning of a comment.
Marks the beginning of a preprocessor
directive
Encloses a filename when used with the
#include directive
Used in naming a function, as in
Not
to be()circulated
int main

without this banner.

Encloses a group of statements, such as the


contents of a function.
Encloses a string of characters, such as a
message that is to be printed on the screen
Marks the end of a complete programming
statement

Starting Out with C++, 3rd Edition

2.2 The cout Object


Use the cout object to display information
on the computers screen.
The Purpose
cout object
is referred
to as thewithout
standard
For Educational
Only. Not
to be circulated
this banner.

output object.
Its job is to output information using the
standard output device

Starting Out with C++, 3rd Edition

Program 2-2
// A simple C++ program
#include <iostream.h>
void main (void)
For Educational
Purpose Only. Not to be circulated without this banner.
{
cout<< Programming is << great fun!;
}

Output:
Programming is great fun!
6

Starting Out with C++, 3rd Edition

Program 2-3
// A simple C++ program
#include <iostream.h>
void main (void)
{
For Educational Purpose Only. Not to be circulated without this banner.
cout<< Programming is ;
cout << great fun!;
}

Output:
Programming is great fun!
7

Starting Out with C++, 3rd Edition

For

Program 2-4
// An unruly printing program
#include <iostream.h>
void main(void)
{
cout << "The following items were top sellers";
cout << "during the month of June:";
cout << "Computer
games";
Educational
Purpose Only.
Not to be circulated without
cout << "Coffee";
cout << "Aspirin";
}

this banner.

Program Output
The following items were top sellersduring the month of
June:Computer gamesCoffeeAspirin
8

Starting Out with C++, 3rd Edition

New lines
cout does not produce a newline at the end
of a statement
To produce
a Only.
newline,
either the
stream
For Educational
Purpose
Not to use
be circulated
without
this banner.
manipulator endl
or the escape sequence \n

Starting Out with C++, 3rd Edition

For

Program 2-5
// A well-adjusted printing program
#include <iostream.h>
void main(void)
{
cout << "The following items were top sellers" << endl;
cout << "during the month of June:" << endl;
Educational
Purpose Only.
to be circulated without this
cout << "Computer
games"Not
<< endl;
cout << "Coffee" << endl;
cout << "Aspirin" << endl;
}

banner.

10

Starting Out with C++, 3rd Edition

Program Output
The following items were top sellers
during the month of June:
Computer games
For Educational
Purpose Only. Not to be circulated without this banner.
Coffee
Aspirin

11

Starting Out with C++, 3rd Edition

Program 2-6
// Another well-adjusted printing program
#include <iostream.h>
void main(void)
For Educational Purpose Only. Not to be circulated without this banner.
{
cout << "The following items were top sellers" << endl;
cout << "during the month of June:" << endl;
cout << "Computer games" << endl << "Coffee";
cout << endl << "Aspirin" << endl;
}

12

Starting Out with C++, 3rd Edition

Program Output
The following items were top sellers
during the month of June:
Computer games
For Educational
Purpose Only. Not to be circulated without this banner.
Coffee
Aspirin

13

Starting Out with C++, 3rd Edition

Program 2-7
// Yet another well-adjusted printing program
#include <iostream.h>
using namespace std;

Forvoid
Educational
Purpose Only. Not to be circulated without this banner.
main(void)
{
cout
cout
cout
cout

<<
<<
<<
<<

"The following items were top sellers\n";


"during the month of June:\n";
"Computer games\nCoffee";
"\nAspirin\n";

14

Starting Out with C++, 3rd Edition

Program Output
The following items were top sellers
during the month of June:
Computer games
For Educational
Purpose Only. Not to be circulated without this banner.
Coffee
Aspirin

15

Starting Out with C++, 3rd Edition

For

Table 2-2
Table 2-2 Common Escape Sequences
Escape
Name
Description
Sequence
\n
Newline
Causes the cursor to go to the
next line for subsequent printing
\t
Horizontal
Causes the cursor to skip over to
tab
the next tab stop
\a
Alarm
Causes the computer to beep
\b
Backspace
the be
cursor
to back up, orwithout
Educational
Purpose
Only.Causes
Not to
circulated
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 quote Causes a double quotation mark
to be printed

this banner.

16

Starting Out with C++, 3rd Edition

2.3 The #include Directive


The #include directive causes the
contents of another file to be inserted into
the program
For Educational
Purpose Only. Not to be circulated without this banner.
Preprocessor directives are not C++
statements and do not require semicolons at
the end

17

Starting Out with C++, 3rd Edition

2.5 Variables and Constants


Variables represent storage locations in the
computers memory. Constants are data
items whose
notcirculated
changewithout
whilethis
thebanner.
For Educational
Purpose values
Only. Notdo
to be
program is running.
Every variable must have a declaration.

18

Starting Out with C++, 3rd Edition

For

Program 2-8
#include <iostream.h>
void main(void)
{
int value;
value = 5;
Educational
Only.
be circulated
cout << Purpose
The value
is Not
<<tovalue
<< endl;without
}

this banner.

Program Output:
The value is 5

19

Starting Out with C++, 3rd Edition

Assignment statements:
Value = 5;

//This line is an assignment statement.

The assignment statement evaluates the


expression on the right of the equal sign
For Educational Purpose Only. Not to be circulated without this banner.
then stores it into the variable named on the
left of the equal sign
The data type of the variable was in integer,
so the data type of the expression on the
right should evaluate to an integer as well.
20

Starting Out with C++, 3rd Edition

Constants
A variable is called a variable because its value
may be changed. A constant, on the other hand, is
a data item whose value does not change during
For Educational
Purposeexecution.
Only. Not to be circulated without this banner.
the programs

21

Starting Out with C++, 3rd Edition

For

Program 2-10
#include <iostream.h>
void main (void)
{
Educational
Purpose Only. Not to be circulated without this banner.
int apples;
apples = 20;
cout<< Today we sold << apples << bushels\n;
cout << of apples.\n;
}

22

Starting Out with C++, 3rd Edition

Program Output

Today we sold 20 bushels


of apples.
For Educational Purpose Only. Not to be circulated without this banner.

Where are the constants in program 2-10?

23

Starting Out with C++, 3rd Edition

Constants from Program 2-10


Constant
Type of Constant
20
Integer constant
"Today we sold " String constant
For Educational
Purpose Only. Not
to be
circulated without this banner.
" bushels\n"
String
constant
"of apples.\n"
String constant

24

Starting Out with C++, 3rd Edition

2.6 Focus on Software Engineering: Identifiers


Must not be a key word
Should be mnemonic (give an indication of what
the variable is used for)
The first character must be a letter or an
For Educational Purpose Only. Not to be circulated without this banner.
underscore
The remaining may be letters, digits, or
underscores
Upper and lower case letters are distinct

25

Starting Out with C++, 3rd Edition

For

Table 2-3 The C++ Key Words


asm
c a tc h
c o n t in u e
d y n a m ic _ c a s t
f a ls e
if
nam espace
p u b lic
Educational
s ig n e d
s w it c h
try
u n s ig n e d
w c h a r_ t

a u to
char
d e f a u lt
e ls e
f lo a t
in li n e
new
r e g is t e r
Purpose
s iz e o f
t e m p la t e
ty p e d e f
u s in g
w h ile

b re a k
c la s s
d e le t e
enum
fo r
in t
o p e ra to r
r e i n Not
t e r p r e t to
_ c a sbe
t
Only.
s t a t ic
t h is
t y p e id
v ir t u a l

bool
const
do
e x p li c i t
f r ie n d
lo n g
p r iv a t e
re tu rn
circulated
without
s t a t ic _ c a s t
th r o w
ty p e n a m e
v o id

case
c o n s t_ c a s t
d o u b le
e x te rn
g o to
m u t a b le
p ro te c te d
sthis
h o r t banner.
s tru c t
tr u e
u n io n
v o la t il e

26

Starting Out with C++, 3rd Edition

Table 2-4 Some Variable Names


Variable Name

Legal or Illegal?

dayOfWeek

Legal

3dGraph
begin with without
a digit. this banner.
For Educational
Purpose Only.Illegal.
Not toCannot
be circulated
_employee_num

Legal

june1997

Legal

Mixture#3

Illegal. Cannot use # symbol.

27

Starting Out with C++, 3rd Edition

2.7 Integer Data Types


There are many different types of data.
Variables are classified according to their
data type,
which
the kind
of this banner.
For Educational
Purpose
Only.determines
Not to be circulated
without
information that may be stored in them.
Integer variables only hold whole numbers.

28

Starting Out with C++, 3rd Edition

Table 2-5
Table 2-5 Integer Data Types, Sizes and Ranges
Data Type
Size
Range
short
2 Bytes -32,768 to +32.767
unsigned short
2 Bytes 0 to +65,535
int
4 Bytes
-2,147,4833,648
to +2,147,4833,647
For Educational
Purpose
Only. Not
to be circulated
without this banner.
unsigned int
4 Bytes 0 to 4,294,967,295
long
4 Bytes -2,147,4833,648 to +2,147,4833,647
unsigned long
4 Bytes 0 to 4,294,967,295

29

Starting Out with C++, 3rd Edition

For

Program 2-11
// This program has variables of several of the integer types.
#include <iostream.h>
void main(void)
{
int checking;
unsigned int miles;
long days;
Educational
Only. Not to be circulated without this
checking Purpose
= -20;
miles = 4276;
days = 184086;
cout << "We have made a long journey of " << miles;
cout << " miles.\n";
cout << "Our checking account balance is " << checking;
cout << "\nExactly " << days << " days ago Columbus ";
cout << "stood on this spot.\n";
}

banner.

30

Starting Out with C++, 3rd Edition

Program Output
We have made a long journey of 4276 miles.
Our checking account balance is -20
Exactly 184086 days ago Columbus stood on this spot.

For Educational Purpose Only. Not to be circulated without this banner.

31

Starting Out with C++, 3rd Edition

Program 2-12
// This program shows three variables declared on the same
// line.
#include <iostream.h>
void main(void)
{
int floors,rooms,suites;

For Educational Purpose Only. Not to be circulated without this banner.


floors = 15;
rooms = 300;
suites = 30;
cout << "The Grande Hotel has " << floors << " floors\n";
cout << "with " << rooms << " rooms and " << suites;
cout << " suites.\n";
}

32

Starting Out with C++, 3rd Edition

Program Output
The Grande Hotel has 15 floors
with 300 rooms and 30 suites.

For Educational Purpose Only. Not to be circulated without this banner.

33

Starting Out with C++, 3rd Edition

Hexadecimal and Octal Constants


Hexadecimal numbers are preceded by 0x
Hexadecimal F4 would be expressed in C++ as
0xF4
For Educational Purpose Only. Not to be circulated without this banner.

Octal numbers are preceded by a 0

Octal 31 would be written as 031

34

Starting Out with C++, 3rd Edition

2.8 The char Data Type


Usually 1 byte long
Internally stored as an integer
For Educational
Only.set
Notshows
to be circulated
ASCIIPurpose
character
integerwithout this banner.
representation for each character
A == 65, B == 66, C == 67, etc.
Single quotes denote a character, double
quotes denote a string
35

Starting Out with C++, 3rd Edition

Program 2-13
// This program demonstrates the close relationship between
// characters and integers.
#include <iostream.h>
void main(void)
For Educational
Purpose Only. Not to be circulated without this banner.
{

char letter;
letter = 65;
cout << letter << endl;
letter = 66;
cout << letter << endl;
}

36

Starting Out with C++, 3rd Edition

Program Output
A
B
For Educational Purpose Only. Not to be circulated without this banner.

37

Starting Out with C++, 3rd Edition

For

Program 2-14
// This program uses character constants
#include <iostream.h>
void main(void)
Educational
Purpose
{
char letter;

Only. Not to be circulated without this banner.

letter = 'A';
cout << letter << endl;
letter = 'B';
cout << letter << endl;
}

38

Starting Out with C++, 3rd Edition

Program Output
A
B
For Educational Purpose Only. Not to be circulated without this banner.

39

Starting Out with C++, 3rd Edition

C-Strings
C-Strings are consecutive sequences of
characters and can occupy several bytes of
memory.
For Educational
Purpose Only. Not to be circulated without this banner.
C-Strings always have a null terminator at
the end. This marks the end of the string.
Escape sequences are always stored
internally as a single character.
40

Starting Out with C++, 3rd Edition

Program 2-15
// This program uses character constants
#include <iostream.h>
void main(void)
{
char letter;
letter = 'A';
For Educational
Purpose Only. Not to be circulated without this banner.
cout << letter << '\n';
letter = 'B';
cout << letter << '\n';

41

Starting Out with C++, 3rd Edition

Program Output
A
B
For Educational Purpose Only. Not to be circulated without this banner.

42

Starting Out with C++, 3rd Edition

Review key points regarding characters,


strings, and C-strings:
Printable characters are internally represented by numeric codes. Most
computers use ASCII codes for this purpose.
Characters occupy a single byte of memory.
C-Strings are consecutive sequences of characters and can occupy
several bytes of memory.
For Educational
Purpose Only. Not to be circulated without this banner.
C-Strings always have a null terminator at the end. This marks the end
of the C-string.
Character constants are always enclosed in single quotation marks.
String constants are always enclosed in double quotation marks.
Escape sequences are always stored internally as a single character.

43

Starting Out with C++, 3rd Edition

2.9 The C++ string Class


The string class is an abstract data type.
It provides capabilities that make working
with strings
intuitive.
For Educational
Purposeeasy
Only.and
Not to
be circulated without this banner.
You must us the #include <string>
statement.

44

Starting Out with C++, 3rd Edition

2.10 Floating Point Data Types


Floating point data types are used to declare
variables that can hold real numbers
For Educational Purpose Only. Not to be circulated without this banner.

45

Starting Out with C++, 3rd Edition

Table 2-7
Table 2-7 Floating Point Data Types on PCs
Data Type
Key Word
Description
Single Precision

float

Double Precision double

4 bytes. Numbers between +


3.4E-38 and + 3.4E38
8 bytes. Numbers between
+1.7E-308 and +1.7E308

Double
long double
8 bytes.Only.
NumbersNot
between
ForLong
Educational
Purpose
to be circulated without this banner.
Precision

+1.7E-308 and +1.7E308

46

Starting Out with C++, 3rd Edition

For

Program 2-17
// This program uses floating point data types
#include <iostream.h>
void main(void)
{
Educational
Purpose Only. Not to be circulated without this banner.
float distance;
double mass;
distance = 1.495979E11;
mass = 1.989E30;
cout << "The Sun is " << distance << " kilometers away.\n";
cout << "The Sun\'s mass is " << mass << " kilograms.\n";
}

47

Starting Out with C++, 3rd Edition

Program Output
The Sun is 1.4959e+11 kilometers away.
The Sun's mass is 1.989e+30 kilograms.
For Educational Purpose Only. Not to be circulated without this banner.

48

Starting Out with C++, 3rd Edition

Floating Point Constants


May be expressed in a variety of ways
E notation
For Educational
Purpose
Only. Not to be circulated without this banner.
decimal
notation
(no commas)

49

Starting Out with C++, 3rd Edition

2.11 The bool Data Type


Boolean variables are set to either true or
false
For Educational Purpose Only. Not to be circulated without this banner.

50

Starting Out with C++, 3rd Edition

For

Program 2-18
#include <iostream.h>
void main (void)
{
bool boolValue;
boolValue
= true;Only. Not to
Educational
Purpose
cout << boolValue << endl;
boolValue = false;
cout << boolValue << endl;
}

be circulated without this banner.

51

Starting Out with C++, 3rd Edition

Program Output
1
0
For Educational
Purpose
Only. Notastothe
benumber
circulated
without
this banner.
Internally, true
is represented
1 and
false is

represented by the number 0.

52

Starting Out with C++, 3rd Edition

2.12 Focus on Software Engineering: Determining the Size


of a Data Type

The sizeof operator may be used to


determine the size of a data type on any
system.
For Educational
Purpose Only. Not to be circulated without this banner.
cout << The size of an integer is << sizeof(int);

53

Starting Out with C++, 3rd Edition

Program 2-19
#include <iostream.h>
void main (void)
{
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;
}

For Educational Purpose Only. Not to be circulated without this banner.

54

Starting Out with C++, 3rd Edition

Program Output
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!
For Educational Purpose Only. Not to be circulated without this banner.

55

Starting Out with C++, 3rd Edition

2.13 Focus on Software Engineering: Variable


Assignment and Initialization

An assignment operation assigns, or copies,


a value into a variable. When a value is
assigned
to a Only.
variable
of the
For Educational
Purpose
Not toas
bepart
circulated
without this banner.
variables declaration, it is called an
initialization.

56

Starting Out with C++, 3rd Edition

Program 2-20
#include <iostream.h>
void main (void)
{
int month = 2, days = 28;
cout << Month << month << has << days << days.\n;
For}Educational Purpose Only. Not to be circulated without this banner.

Program output:
Month 2 has 28 days.

57

Starting Out with C++, 3rd Edition

2.14 Focus on Software Engineering: Scope

A variables scope is the part of the program


that has access to the variable.
A variable
must
beNotdeclared
beforewithout
it is this banner.
For Educational
Purpose
Only.
to be circulated
used.

58

Starting Out with C++, 3rd Edition

Program 2-21
// This program can't find its variable
#include <iostream.h>
For Educational
Purpose Only. Not to be circulated without this banner.
void main(void)

{
cout << Value;
int Value = 100;
}
59

Starting Out with C++, 3rd Edition

2.15 Arithmetic Operators


There are many operators for manipulating
numeric values and performing arithmetic
operations.
For Educational Purpose Only. Not to be circulated without this banner.
Generally, there are 3 types of operators:
unary, binary, and ternary.

Unary operators operate on one operand


Binary operators require two operands
Ternary operators need three operands
60

Starting Out with C++, 3rd Edition

Table 2-8
Table 2-8 Fundamental Arithmetic Operaotrs
Operator Meaning
Type
Example
+
Addition
Binary
Total = Cost + Tax;
Subtraction
Binary
Cost = Total - Tax;
*
Multiplication
= Cost *without
Rate; this banner.
For Educational
Purpose Only.Binary
Not to be Tax
circulated
/
Division
Binary
SalePrice = Original/2;
%
Modulus
Binary
Remainder = Value%3;

61

Starting Out with C++, 3rd Edition

Program 2-22
// This program calculates hourly wages
// The variables in function main are used as follows:
// regWages: holds the calculated regular wages.
// basePay: holds the base pay rate.
// regHours: holds the number of hours worked less overtime.
// otWages: holds the calculated overtime wages.
// otPay: holds the payrate for overtime hours.
// otHours: holds the number of overtime hours worked.
// totalWages: holds the total wages.

For Educational
Purpose Only. Not to be circulated without this banner.
#include <iostream.h>
void main(void)
{
float regWages, basePay = 18.25, regHours = 40.0;
float otWages, otPay = 27.78, otHours = 10;
float totalWages;
regWages = basePay * regHours;
otWages = otPay * otHours;
totalWages = regWages + otWages;
cout << "Wages for this week are $" << totalWages << endl;
}

62

Starting Out with C++, 3rd Edition

2.16 Comments
Comments are notes of explanation that document lines or
sections of a program.
Comments are part of a program, but the compiler ignores
them. They
are intended
fortopeople
who maywithout
be reading
For Educational
Purpose
Only. Not
be circulated
this banner.
the source code.
Commenting the C++ Way
//
Commenting the C Way
/*
*/
63

Starting Out with C++, 3rd Edition

Program 2-23
//
//
//
//

PROGRAM: PAYROLL.CPP
Written by Herbert Dorfmann
This program calculates company payroll
Last modification: 3/30/96

#include <iostream.h>

For Educational
Purpose Only. Not to be circulated without this banner.
void main(void)
{
float payRate;
float hours;
int empNum;

// holds the hourly pay rate


// holds the hours worked
// holds the employee number

(The remainder of this program is left out.)

64

Starting Out with C++, 3rd Edition

Program 2-24
//
//
//
//
//
//
//
//

PROGRAM: PAYROLL.CPP
Written by Herbert Dorfmann
Also known as "The Dorfmiester"
Last modification: 3/30/96
This program calculates company payroll.
Payroll should be done every Friday no later than
12:00 pm. To start the program type PAYROLL and
press the enter key.

#include <iostream.h>

//
//
//
//
//
//
//
//
//
//

Need the iostream file because


the program uses cout.
This is the start of function main.
This is the opening brace for main.
payRate is a float variable.
It holds the hourly pay rate.
hours is a float variable too.
It holds the hours worked.
empNum is an integer.
It holds the employee number.

For Educational Purpose Only. Not to be circulated without this banner.


void main(void)
{
float payRate;
float hours;
int empNum;

(The remainder of this program is left out.)

65

Starting Out with C++, 3rd Edition

Program 2-25
/*
PROGRAM: PAYROLL.CPP
Written by Herbert Dorfmann
This program calculates company payroll
Last modification: 3/30/96

*/
For Educational
Purpose Only. Not to be circulated without this banner.
#include <iostream.h>
void main(void)
{
float payRate;
float hours;
int empNum;

/* payRate holds hourly pay rate */


/* hours holds hours worked
*/
/* empNum holds employee number */

(The remainder of this program is left out.)

66

Starting Out with C++, 3rd Edition

Program 2-26
/*
PROGRAM: PAYROLL.CPP
Written by Herbert Dorfmann
This program calculates company payroll
Last modification: 3/30/96
*/
#include <iostream.h>

For Educational Purpose Only. Not to be circulated without this banner.


void main(void)
{
float payRate;
float hours;
int empNum;

// payRate holds the hourly pay rate


// hours holds the hours worked
// empNum holds the employee number

(The remainder of this program is left out.)

67

Starting Out with C++, 3rd Edition

2.17 Focus on Software Engineering:


Programming Style
Program style refers to the way a programmer uses
identifiers, spaces, tabs, blank lines, and punctuation
characters to visually arrange a programs source code.
Generally,
C++ ignores
space.
For Educational
Purpose
Only. white
Not to
be circulated without this banner.

Indent inside a set of braces.


Include a blank line after variable declarations.

68

Starting Out with C++, 3rd Edition

Program 2-27
#include <iostream.h>
void main(void){float shares=220.0;float avgPrice=14.67;cout
<<"There were "<<shares<<" shares sold at $"<<avgPrice<<"
per share.\n";}

Program Output
For Educational
Purpose Only. Not to be circulated without this banner.
There were 220 shares sold at $14.67 per share.

69

Starting Out with C++, 3rd Edition

For

Program 2-28
// This example is much more readable than Program 2-26.
#include <iostream.h>
void main(void)
{
float shares = 220.0;
float avgPrice
= 14.67;
Educational
Purpose
Only.

Not to be circulated without this banner.

cout << "There were " << shares << " shares sold at $";
cout << avgPrice << " per share.\n";
}

Program Output
There were 220.0 shares sold at $14.67 per share.
70

Starting Out with C++, 3rd Edition