c++ Programming in DS

Embed Size (px)

Citation preview

  • 7/27/2019 c++ Programming in DS

    1/30

    2003 Prentice Hall, Inc. All rights reserved.

    1

    Introduction to C++ Programming

    OutlineHistory of C and C++C++ Standard LibraryObject TechnologyBasics of a Typical C++ Environment

    General Notes About C++ and This BookIntroduction to C++ ProgrammingA Simple Program: Printing a Line of TextAnother Simple Program: Adding Two IntegersArithmeticDecision Making: Equality and Relational Operators

    Thinking About Objects: Introduction to Object Technology

  • 7/27/2019 c++ Programming in DS

    2/30

    2003 Prentice Hall, Inc. All rights reserved.

    2

    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

  • 7/27/2019 c++ Programming in DS

    3/30

    2003 Prentice Hall, Inc. All rights reserved.

    3

    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

  • 7/27/2019 c++ Programming in DS

    4/30

    2003 Prentice Hall, Inc. All rights reserved.

    4

    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

  • 7/27/2019 c++ Programming in DS

    5/30

    2003 Prentice Hall, Inc. All rights reserved.

    5

    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 maintainthan procedural programming

    Favor modularity Software reuse

    Libraries MFC (Microsoft Foundation Classes) Rogue Wave

  • 7/27/2019 c++ Programming in DS

    6/30

    2003 Prentice Hall, Inc. All rights reserved.

    6

    Basics of a Typical C++ Environment

    C++ systems Program-development environment Language C++ Standard Library

  • 7/27/2019 c++ Programming in DS

    7/30 2003 Prentice Hall, Inc. All rights reserved.

    7

    Basics of a Typical C++ Environment

    Phases of C++ Programs:1. Edit

    2. Preprocess

    3. Compile

    4. Link

    5. Load6. Execute

    Loader

    PrimaryMemory

    Program is created inthe editor and stored

    on disk.Preprocessor programprocesses the code.

    Loader puts programin memory.

    CPU takes eachinstruction andexecutes it, possiblystoring new datavalues as the programexecutes.

    Compiler Compiler createsobject code and storesit on disk.

    Linker links the object

    code with the libraries,creates a.out andstores it on disk

    Editor

    Preprocessor

    Linker

    CPU

    PrimaryMemory

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    Disk

    Disk

    Disk

    Disk

    Disk

  • 7/27/2019 c++ Programming in DS

    8/30 2003 Prentice Hall, Inc. All rights reserved.

    8

    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

  • 7/27/2019 c++ Programming in DS

    9/30 2003 Prentice Hall, Inc. All rights reserved.

    9

    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

  • 7/27/2019 c++ Programming in DS

    10/30 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

  • 7/27/2019 c++ Programming in DS

    11/30 2003 Prentice Hall, Inc. All rights reserved.

    11

    A Simple Program:Printing a Line of Text

    Comments Document programs Improve program readability Ignored by compiler

    Single-line comment Begin with //

    Preprocessor directives Processed by preprocessor before compiling

    Begin with #

  • 7/27/2019 c++ Programming in DS

    12/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline12

    fig01_02.cpp(1 of 1)

    fig01_02.cppoutput (1 of 1)

    1 // Fig. 1.2: fig01_02.cpp2 // A first program in C++.3 #include 45 // function main begins program execution6 int main()

    7 {8 std::cout

  • 7/27/2019 c++ Programming in DS

    13/30 2003 Prentice Hall, Inc. All rights reserved.

    13

    A Simple Program:Printing a Line of Text

    Standard output stream object std::cout Connected to screen

  • 7/27/2019 c++ Programming in DS

    14/30 2003 Prentice Hall, Inc. All rights reserved.

    14

    A Simple Program:Printing a Line of Text

    Escape Sequence Description

    \n Newline. Position the screen cursor to the beginning of the next line.

    \t Horizontal tab. Move the screen cursor to the nexttab stop.

    \r Carriage return. Position the screen cursor to the beginning of the current line; do not advance to thenext line.

    \a Alert. Sound the system bell.\\

    Backslash. Used to print a backslash character.\" Double quote. Used to print a double quotecharacter.

  • 7/27/2019 c++ Programming in DS

    15/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline15

    fig01_04.cpp(1 of 1)

    fig01_04.cppoutput (1 of 1)

    1 // Fig. 1.4: fig01_04.cpp2 // Printing a line with multiple statements.3 #include 45 // function main begins program execution6 int main()

    7 {8 std::cout

  • 7/27/2019 c++ Programming in DS

    16/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline16

    fig01_05.cpp(1 of 1)

    fig01_05.cppoutput (1 of 1)

    1 // Fig. 1.5: fig01_05.cpp2 // Printing multiple lines with a single statement3 #include 45 // function main begins program execution6 int main()

    7 {8 std::cout

  • 7/27/2019 c++ Programming in DS

    17/30 2003 Prentice Hall, Inc. All rights reserved.

    17

    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 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

    int intege r1 , integer2, sum;

    18

  • 7/27/2019 c++ Programming in DS

    18/30 2003 Prentice Hall, Inc. All rights reserved.

    18

    Another Simple Program:Adding Two Integers

    Variables Variable names Valid identifier

    Series of characters (letters, digits, underscores) Cannot begin with digit Case sensitive

    19

  • 7/27/2019 c++ Programming in DS

    19/30 2003 Prentice Hall, Inc. All rights reserved.

    19

    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

    = (assignment operator) Assigns value to variable Binary operator (two operands) Example:

    sum = variable1 + variable2;

    20

  • 7/27/2019 c++ Programming in DS

    20/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline20

    fig01_06.cpp(1 of 1)

    1 // Fig. 1.6: fig01_06.cpp2 // Addition program.3 #include 45 // function main begins program execution6 int main()

    7 {8 int integer1; // first number to be input by user9 int integer2; // second number to be input by user10 int sum; // variable in which sum will be stored 1112 std::cout > integer1; // read an integer1415 std::cout > integer2; // read an integer1718 sum = integer1 + integer2; // assign result to sum 1920 std::cout

  • 7/27/2019 c++ Programming in DS

    21/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline21

    fig01_06.cppoutput (1 of 1)

    Enter first integer45Enter second integer72Sum is 117

    22

  • 7/27/2019 c++ Programming in DS

    22/30

    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

    23

  • 7/27/2019 c++ Programming in DS

    23/30

    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 Operators applied from left to rightOperator(s) Operation(s) Order of evaluation (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.

    * , / , or % Multiplication DivisionModulus

    Evaluated second. If there are several, they reevaluated left to right.

    + or - AdditionSubtraction

    Evaluated last. If there are several, they areevaluated left to ri ght.

    24

  • 7/27/2019 c++ Programming in DS

    24/30

    2003 Prentice Hall, Inc. All rights reserved.

    24

    Decision Making: Equality andRelational Operators

    if structure Make decision based on truth or falsity of condition

    If condition met, body executed Else, body not executed

    Equality and relational operators Equality operators

    Same level of precedence

    Relational operators

    Same level of precedence Associate left to right

    25

  • 7/27/2019 c++ Programming in DS

    25/30

    2003 Prentice Hall, Inc. All rights reserved.

    25

    Decision Making: Equality andRelational Operators

    Standard algebraicequality operator orrelational operator

    C++ equalityor relationaloperator

    Exampleof C++condition

    Meaning of C++ condition

    Relational operators

    > > x > y x is greater than y

    < < x < y x is less than y

    >= x >= y x is greater than or equal to y

  • 7/27/2019 c++ Programming in DS

    26/30

    2003 Prentice Hall, Inc. All rights reserved.

    26

    Decision Making: Equality andRelational Operators

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

    27

  • 7/27/2019 c++ Programming in DS

    27/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline27

    fig01_14.cpp(1 of 2)

    1 // Fig. : fig01_14.cpp2 // Using if statements, relational3 // operators, and equality operators.4 #include 56 using std::cout; // program uses cout

    7 using std::cin; // program uses cin8 using std::endl; // program uses endl910 // function main begins program execution11 int main()12 {13 int num1; // first number to be read from user14 int num2; // second number to be read from user1516 cout num1 >> num2; // read two integers1920 if ( num1 == num2 )21 cout

  • 7/27/2019 c++ Programming in DS

    28/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline28

    fig01_14.cpp(2 of 2)

    fig01_14.cppoutput (1 of 2)

    26 if ( num1 < num2 )27 cout

  • 7/27/2019 c++ Programming in DS

    29/30

    2003 Prentice Hall, Inc.All rights reserved.

    Outline29

    fig01_14.cppoutput (2 of 2)

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

    301 26 Thi ki Ab t Obj t

  • 7/27/2019 c++ Programming in DS

    30/30

    301.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.

    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