Sunteți pe pagina 1din 30

1

Introduction to C++ Programming


Outline History of C and C++ C++ Standard Library Object Technology Basics of a Typical C++ Environment General Notes About C++ and This Book Introduction to C++ Programming A Simple Program: Printing a Line of Text Another Simple Program: Adding Two Integers Arithmetic Decision Making: Equality and Relational Operators Thinking About Objects: Introduction to Object Technology

2003 Prentice Hall, Inc. All rights reserved.

History of C and C++ History of C


Evolved from two other programming languages
BCPL and B Typeless languages

Dennis Ritchie (Bell Laboratories)


Added data typing, other features

Development language of UNIX Hardware independent


Portable programs

1989: ANSI standard 1990: ANSI and ISO standard published


ANSI/ISO 9899: 1990
2003 Prentice Hall, Inc. All rights reserved.

History of C and C++ History of C++


Extension of C Early 1980s: Bjarne Stroustrup (Bell Laboratories) Spruces up C Provides capabilities for object-oriented programming
Objects: reusable software components Model items in real world Object-oriented programs Easy to understand, correct and modify

Hybrid language
C-like style Object-oriented style Both
2003 Prentice Hall, Inc. All rights reserved.

C++ Standard Library C++ programs


Built from pieces called classes and functions

C++ standard library


Rich collections of existing classes and functions

Building block approach to creating programs


Software reuse

2003 Prentice Hall, Inc. All rights reserved.

Object Technology Objects


Reusable software components that model real world items Meaningful software units
Date objects, time objects, paycheck objects, invoice objects, audio objects, video objects, file objects, record objects, etc. Any noun can be represented as an object

More understandable, better organized and easier to maintain than procedural programming Favor modularity
Software reuse Libraries MFC (Microsoft Foundation Classes) Rogue Wave
2003 Prentice Hall, Inc. All rights reserved.

Basics of a Typical C++ Environment C++ systems


Program-development environment Language C++ Standard Library

2003 Prentice Hall, Inc. All rights reserved.

Basics of a Typical C++ Environment Phases of C++ Programs: 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute
Editor Disk

Program is created in the editor and stored on disk. Preprocessor program processes the code. Compiler creates object code and stores it on disk. Linker links the object code with the libraries, creates a.out and stores it on disk

Preprocessor

Disk

Compiler

Disk

Linker

Disk
Primary Memory

Loader

Disk

Loader puts program in memory.


. . . . . .

Primary Memory

CPU

. . . . . .

CPU takes each instruction and executes it, possibly storing new data values as the program executes.

2003 Prentice Hall, Inc. All rights reserved.

Basics of a Typical C++ Environment Input/output


cin
Standard input stream Normally keyboard

cout
Standard output stream Normally computer screen

cerr
Standard error stream Display error messages

2003 Prentice Hall, Inc. All rights reserved.

General Notes About C++ and This Book Book geared toward novice programmers
Stress programming clarity C and C++ are portable languages

Portability
C and C++ programs can run on many different computers

Compatibility
Many features of current versions of C++ not compatible with older implementations

2003 Prentice Hall, Inc. All rights reserved.

10

Introduction to C++ Programming C++ language


Facilitates structured and disciplined approach to computer program design

Structured programming Object-oriented programming

2003 Prentice Hall, Inc. All rights reserved.

A Simple Program: Printing a Line of Text Comments


Document programs Improve program readability Ignored by compiler Single-line comment
Begin with //

11

Preprocessor directives
Processed by preprocessor before compiling Begin with #

2003 Prentice Hall, Inc. All rights reserved.

Corresponding right brace } return 0; //ends function body. indicate that program ended successfully Stream insertion Name cout belongs to operator. } // end function main namespace std. Keyword return is one of Welcome to C++! several means to exit function; value 0 indicates program terminated successfully.

1 2 3 4 5 6 7 8 9 10 11 12

// Fig. 1.2: fig01_02.cpp // A first program in C++. Function main #include <iostream>

Single-line comments.

Outline

12

// function main int main() { std::cout << "Welcome to C++!\n";

returns an integer value. begins Preprocessor directive to Left brace { function include input/output Statements end with afig01_02.cpp stream begins program execution appears body. Function main (1 of 1) header file <iostream>. exactly once in every C++ semicolon ;. program.. fig01_02.cpp output (1 of 1)

2003 Prentice Hall, Inc.


All rights reserved.

A Simple Program: Printing a Line of Text Standard output stream object


std::cout Connected to screen <<
Stream insertion operator Value to right (right operand) inserted into output stream

13

Namespace
std:: specifies using name that belongs to namespace std std:: removed through use of using statements

Escape characters
\ Indicates special character output
2003 Prentice Hall, Inc. All rights reserved.

A Simple Program: Printing a Line of Text


Escape Sequence \n \t \r Description Newline. Position the screen cursor to the beginning of the next line. Horizontal tab. Move the screen cursor to the next tab stop. Carriage return. Position the screen cursor to the beginning of the current line; do not advance to the next line. Alert. Sound the system bell. Backslash. Used to print a backslash character. Double quote. Used to print a double quote character.

14

\a \\ \"

2003 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13

// Fig. 1.4: fig01_04.cpp // Printing a line with multiple statements. #include <iostream> // function main begins program execution int main() { std::cout << "Welcome "; std::cout << "to C++!\n"; return 0;

Outline

15

fig01_04.cpp Multiple stream insertion (1 of 1) statements produce one line of output. fig01_04.cpp output (1 of 1)

// indicate that program ended successfully

} // end function main

Welcome to C++!

2003 Prentice Hall, Inc.


All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12

// Fig. 1.5: fig01_05.cpp // Printing multiple lines with a single statement #include <iostream>

Outline
to fig01_05.cpp (1 of 1) fig01_05.cpp output (1 of 1)

16

Using newline characters // function main begins program execution print on multiple lines. int main() { std::cout << "Welcome\nto\n\nC++!\n";
return 0; // indicate that program ended successfully

} // end function main

Welcome to C++!

2003 Prentice Hall, Inc.


All rights reserved.

Another Simple Program: Adding Two Integers Variables


Location in memory where value can be stored Common data types
int - integer numbers char - characters double - floating point numbers

17

Declare variables with name and data type before use

int integer1; int integer2; int sum;


Can declare several variables of same type in one declaration
Comma-separated list
2003 Prentice Hall, Inc. All rights reserved.

int integer1, integer2, sum;

Another Simple Program: Adding Two Integers Variables


Variable names
Valid identifier Series of characters (letters, digits, underscores) Cannot begin with digit Case sensitive

18

2003 Prentice Hall, Inc. All rights reserved.

Another Simple Program: Adding Two Integers Input stream object


>> (stream extraction operator)
Used with std::cin Waits for user to input value, then press Enter (Return) key Stores value in variable to right of operator Converts value to variable data type

19

= (assignment operator)
Assigns value to variable Binary operator (two operands) Example:
sum = variable1 + variable2;

2003 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

// Fig. 1.6: fig01_06.cpp // Addition program. #include <iostream> // function main begins program execution int main() Declare integer variables. { int integer1; // first number to be input by user int integer2; // second number to be input by user Use stream extraction int sum; // variable in which sum will be stored std::cout << "Enter first std::cin >> integer1;

Outline
fig01_06.cpp (1 of 1)

20

operator with standard input stream to obtain prompt integer\n"; // user input.

// read an integer

std::cout << "Enter second integer\n"; // prompt std::cin >> integer2; // read an integer Calculations can be performed in output

statements: Stream manipulator alternative for lines 18 and 20: std::endl outputs a sum = integer1 + integer2; // assign result to sum newline, then flushes output std::cout << "Sum is " << integer1 + integer2 << std::endl; buffer. std::cout << "Sum is " << sum << std::endl; // print sum
return 0; // indicate that program ended successfully

} // end function main

Concatenating, chaining or cascading stream insertion operations.


2003 Prentice Hall, Inc.
All rights reserved.

Enter first integer 45 Enter second integer 72 Sum is 117

Outline
fig01_06.cpp output (1 of 1)

21

2003 Prentice Hall, Inc.


All rights reserved.

22

Arithmetic Arithmetic calculations


*
Multiplication

/
Division Integer division truncates remainder 7 / 5 evaluates to 1

%
Modulus operator returns remainder 7 % 5 evaluates to 2

2003 Prentice Hall, Inc. All rights reserved.

23

Arithmetic Rules of operator precedence


Operators in parentheses evaluated first
Nested/embedded parentheses Operators in innermost pair first

Multiplication, division, modulus applied next


Operators applied from left to right

Addition, subtraction applied last


Operator(s) () Operation(s) Order evaluation Operators applied from leftofto right (precedence) Parentheses Evaluated first. If the parentheses are nested, the expression in the innermost pair is evaluated first. If there are several pairs of parentheses on the same level (i.e., not nes ted), they are evaluated left to right. Evaluated second. If there are several, they re evaluated left to right. Evaluated last. If there are several, they are evaluated left to ri ght.

*, /, or % + or -

Multiplication Division Modulus Addition Subtraction

2003 Prentice Hall, Inc. All rights reserved.

Decision Making: Equality and Relational Operators if structure


Make decision based on truth or falsity of condition
If condition met, body executed Else, body not executed

24

Equality and relational operators


Equality operators
Same level of precedence

Relational operators
Same level of precedence

Associate left to right

2003 Prentice Hall, Inc. All rights reserved.

Decision Making: Equality and Relational Operators


Standard algebraic equality operator or relational operator C + equality + or relational operator Example of C + + condition Meaning of C + condition +

25

Relational operators > < > < >= <= x > y x < y x >= y x <= y x is greater than y x is less than y x is greater than or equal to y x is less than or equal to y


Equality operators =

== !=

x == y x != y

x is equal to y x is not equal to y

2003 Prentice Hall, Inc. All rights reserved.

Decision Making: Equality and Relational Operators using statements


Eliminate use of std:: prefix Write cout instead of std::cout

26

2003 Prentice Hall, Inc. All rights reserved.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

// Fig. : fig01_14.cpp // Using if statements, relational // operators, and equality operators. #include <iostream> using std::cout; using std::cin; using std::endl; // program uses cout // program uses cin // program uses endl

Outline
fig01_14.cpp (1 of 2) using statements eliminate need for std:: prefix.

27

Declare variables. // function main begins program execution int main() { Can write cout and cin int num1; // first number to be read from user without std:: prefix. int num2; // second number to be read from user
cout << "Enter two integers, and I will tell you\n" if structure compares values << "the relationships they satisfy: "; of num1 and num2 to test fortrue If condition is cin >> num1 >> num2; // read two integers if ( num1 == num2 ) cout << num1 << " is

if ( num1 != num2 ) cout << num1 << " is not equal to " << num2 << endl;

(i.e., equality. values are equal), execute this if structure compares values statement. If << test of to " << num2 toendl;is equalnum1 andnum2condition fortrue (i.e., values are not equal), execute inequality. this statement.

2003 Prentice Hall, Inc.


All rights reserved.

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

if ( num1 < num2 ) cout << num1 << " is less than " << num2 << endl; if ( num1 > num2 ) cout << num1 << " is greater than " << num2 << endl; if ( num1 <= num2 ) cout << num1 << " is less than or equal to " << num2 << endl; if ( num1 >= num2 ) cout << num1 << " is greater than or equal to " << num2 << endl; return 0; // indicate that program ended successfully

Outline
fig01_14.cpp Statements of 2) be split over (2 may several lines. fig01_14.cpp output (1 of 2)

28

} // end function main

Enter two integers, and I will tell you the relationships they satisfy: 22 12 22 is not equal to 12 22 is greater than 12 22 is greater than or equal to 12

2003 Prentice Hall, Inc.


All rights reserved.

Enter two integers, and I will tell you the relationships they satisfy: 7 7 7 is equal to 7 7 is less than or equal to 7 7 is greater than or equal to 7

Outline
fig01_14.cpp output (2 of 2)

29

2003 Prentice Hall, Inc.


All rights reserved.

1.26 Thinking About Objects: Introduction to Object Technology and the Unified Modeling Language Object oriented programming (OOP)
Model real-world objects with software counterparts Attributes (state) - properties of objects
Size, shape, color, weight, etc.

30

Behaviors (operations) - actions


A ball rolls, bounces, inflates and deflates Objects can perform actions as well

Inheritance
New classes of objects absorb characteristics from existing classes

Objects
Encapsulate data and functions Information hiding Communicate across well-defined interfaces
2003 Prentice Hall, Inc. All rights reserved.

S-ar putea să vă placă și