Introduction to C++ Programming - Concordia...

35
© 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to C++ Programming Outline Introduction to C++ Programming A Simple Program: Printing a Line of Text Another Simple Program: Adding Two Integers Memory Concepts Arithmetic Decision Making: Equality and Relational Operators

Transcript of Introduction to C++ Programming - Concordia...

© 2003 Prentice Hall, Inc. All rights reserved.

1

Introduction to C++ ProgrammingOutline

Introduction to C++ ProgrammingA Simple Program: Printing a Line of TextAnother Simple Program: Adding Two IntegersMemory ConceptsArithmeticDecision Making: Equality and Relational Operators

© 2003 Prentice Hall, Inc. All rights reserved.

2

Introduction

Programs we will study in this book process information and display results.

Some simple examples to introduce you to simple programming:

– display information on the screen– obtain information from the user– perform simple decision-making

© 2003 Prentice Hall, Inc. All rights reserved.

3

A C++ Program

#include <iostream> // Use the iostream library

int main () // The main part of the program {

…return 0;

}

© 2003 Prentice Hall, Inc. All rights reserved.

4

A C++ Program (2)

{/* Declaration of three float variables float means real numbers */float cost, price, tax;

// Display the message (stream) on the screenstd::cout << "This is a tax calculation program."

<< endl;

data typevariables

© 2003 Prentice Hall, Inc. All rights reserved.

5

A C++ Program (3)

// get output: Tell the user what to enterstd::cout << “Enter the price \n";

// get input: Insert what is entered into the variable

std::cin >> price;

// Calculatetax = price * 0.145;cost = price + tax;

© 2003 Prentice Hall, Inc. All rights reserved.

6

A C++ Program (4)

// Display the content of cost // on the monitor and end the linestd::cout << "The cost is " << cost << endl;

// Program endreturn 0;

}

© 2003 Prentice Hall, Inc. All rights reserved.

7

C++ Language Elements

• Comments– Document programs– Improve program readability– Ignored by compiler– Single-line comment

• Begin with //• You can also use /* */

e.g.{

/*……*/

}

© 2003 Prentice Hall, Inc. All rights reserved.

8

Compiler Directives

• Processed by preprocessor before compiling

• Begin with #– #include

• Compiler directive• Processed at compilation time• Instructs compiler on what you want in the program

– #include <iostream>• Adds library files to program• Used with < >• Also “ ” for user defined

© 2003 Prentice Hall, Inc. All rights reserved.

9

Declarations

• Direct the compiler on requirements• Based on data needs (data identifiers)• Each identifier needed must be declared

(before it is being used)• Comma used to separate identifiers• cin and cout are undeclared identifiers

– Special elements called streams– cin - input stream – cout - output stream (usually screen)– Included with the iostream not declared

© 2003 Prentice Hall, Inc. All rights reserved.

10

Executable Statements

• cout get output– cout << “Enter the fabric size in square

meters: ”;• cin get input

– cin >> sizeInSqmeters;• Assignment

– sizeInSqyards = metersToYards * sizeInSqmeters;

1 // Fig. 2. 1: fig02_01.cpp2 // A first program in C++.3 #include <iostream>4 5 // function main begins program execution6 int main()7 {8 std::cout << "Welcome to C++!\n";9 10 return 0; // indicate that program ended successfully11 12 } // end function main

Welcome to C++!

© 2003 Prentice Hall, Inc.All rights reserved.

Outline11

fig02_01.cpp(1 of 1)

fig02_01.cppoutput (1 of 1)

© 2003 Prentice Hall, Inc. All rights reserved.

12

Executable Statements

-Every program MUST contain ONE “main”-C++ programs begin executing at function

“main”, even if it was not the first function in the program.

- “int” indicates that the “main” function returns an integer

- main (): indicates that the main function does not take any argument (variable) to execute

int main () // The main part of the program{

…return 0;

}

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

• Stream insertion operator • Value to right (right operand) inserted into output

stream • 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.

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 next tab stop.

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

\a Alert. Sound the system bell. \\ Backslash. Used to print a backslash character. \" Double quote. Used to print a double quote

character.

1 // Fig. 2.3: fig02_03.cpp2 // Printing a line with multiple statements.3 #include <iostream>4 5 // function main begins program execution6 int main()7 {8 std::cout << "Welcome "; 9 std::cout << "to C++!\n";10 11 return 0; // indicate that program ended successfully12 13 } // end function main

Welcome to C++!

© 2003 Prentice Hall, Inc.All rights reserved.

Outline15

fig02_03.cpp(1 of 1)

fig02_03.cppoutput (1 of 1)

1 // Fig. 2.4: fig02_04.cpp2 // Printing multiple lines with a single statement3 #include <iostream>4 5 // function main begins program execution6 int main()7 {8 std::cout << "Welcome\nto\n\nC++!\n";9 10 return 0; // indicate that program ended successfully11 12 } // end function main

Welcometo

C++!

© 2003 Prentice Hall, Inc.All rights reserved.

Outline16

fig02_04.cpp(1 of 1)

fig02_04.cppoutput (1 of 1)

© 2003 Prentice Hall, Inc. All rights reserved.

17

Data Types and Declarations

• Variables – Location in memory where value can be stored– Common data types

• int - integer numbers (4 bytes)• char – represent characters (1 bytes)• double - floating point numbers (Positive or negative

decimal numbers)• bool (Boolean) true or false

– Declare variables with name and data type before useint integer1;int integer2;int sum;

– Can declare several variables of same type in one declaration

• Comma-separated listint integer1, integer2, sum;

© 2003 Prentice Hall, Inc. All rights reserved.

18

Data Types and Declarations (2)

• The basic integer type is int– The size of an int depends on the machine and the

compiler• On PCs it is normally 16 or 32 bits

• Other integers types– short: typically uses less bits (2 bytes)– long: typically uses more bits (4 bytes)

• Different types allow programmers to use resources more efficiently

• Standard arithmetic and relational operations are available for these types

© 2003 Prentice Hall, Inc. All rights reserved.

19

Data Types and Declarations (3)

• Floating-point types represent real numbers– Integer part– Fractional part

• The number 108.1517 breaks down into the following parts– 108 - integer part– 1517 - fractional part

• C++ provides three floating-point types– Float (4 bytes)– Double (8 bytes)– long double (8 bytes)

© 2003 Prentice Hall, Inc. All rights reserved.

20

Another Simple Program:Adding Two Integers

• Variables– Variable names

• Valid identifier– Series of characters (letters, digits,

underscores)– Cannot begin with digit– Case sensitive

© 2003 Prentice Hall, Inc. All rights reserved.

21

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;

1 // Fig. 2.5: fig02_05.cpp2 // Addition program.3 #include <iostream>4 5 // function main begins program execution6 int main()7 {8 int integer1; // first number to be input by user 9 int integer2; // second number to be input by user 10 int sum; // variable in which sum will be stored11 12 std::cout << "Enter first integer\n"; // prompt13 std::cin >> integer1; // read an integer14 15 std::cout << "Enter second integer\n"; // prompt16 std::cin >> integer2; // read an integer17 18 sum = integer1 + integer2; // assign result to sum19 20 std::cout << "Sum is " << sum << std::endl; // print sum21 22 return 0; // indicate that program ended successfully23 24 } // end function main

© 2003 Prentice Hall, Inc.All rights reserved.

Outline22

fig01_06.cpp(1 of 1)

Enter first integer45Enter second integer72Sum is 117

© 2003 Prentice Hall, Inc.All rights reserved.

Outline23

fig01_06.cppoutput (1 of 1)

© 2003 Prentice Hall, Inc. All rights reserved.

24

Memory Concepts

• Variable names– Correspond to actual locations in computer's

memory– Every variable has name, type, size and value

int X;

– When new value placed into variable, overwrites previous value

– Reading variables from memory nondestructive (variable retains its value)

© 2003 Prentice Hall, Inc. All rights reserved.

25

Memory Concepts

std::cin >> integer1;– Assume user entered 45

std::cin >> integer2;– Assume user entered 72

sum = integer1 + integer2;

integer1 45

integer1 45

integer2 72

integer1 45

integer2 72

sum 117

© 2003 Prentice Hall, Inc. All rights reserved.

26

Arithmetic• Most programs perform arithmetic

calculations• Arithmetic calculations

– *• Multiplication

– /• Division• Integer division truncates remainder

– 7 / 5 evaluates to 1– %

• Modulus operator returns remainder – 7 % 5 evaluates to 2

• All arithmetic operators are binary operators (takes two operands)

% operator cannot be used with non-integer operands (compilation error!)

© 2003 Prentice Hall, Inc. All rights reserved.

27

Arithmetic

• Rules of operator precedence– Operators in parentheses are evaluated first

• Nested/embedded parentheses– Operators in innermost pair first (e.g., ((a + b) + c))

– Multiplication, division, modulus applied next• Operators applied from left to right

– Addition, subtraction applied last• Operators applied from left to right

Operator(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 nested), they are evaluated left to right.

*, /, or % Multiplication Division Modulus

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

+ or - Addition Subtraction

Evaluated last. If there are several, they are evaluated left to right.

© 2003 Prentice Hall, Inc. All rights reserved.

28

Arithmetic

e.g., second degree polynomial: y = ax2+bx+c

C++

y = a * x * x + b * x + c11 22

44

33

5566

© 2003 Prentice Hall, Inc. All rights reserved.

29

Decision Making: Equality and Relational Operators

• if structure– Allows a programmer to 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– Operators associate left to right

© 2003 Prentice Hall, Inc. All rights reserved.

30

Decision Making: Equality and Relational Operators

Standard a lgeb ra ic equa lity opera tor or re la tiona l opera tor

C++ equa lity or re la tiona l opera tor

Examp le of C++ cond ition

Meaning of C++ cond ition

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

≤ <= x <= y x is less than or equal to y

Equality operators

= == x == y x is equal to y

≠ != x != y x is not equal to y

© 2003 Prentice Hall, Inc. All rights reserved.

31

Decision Making: Equality and Relational Operators

• A syntax error will occur if any of the operators appear with spaces between its pair of symbols

• Reversing the order of the pair of symbols (e.g., =!, =>, =<) is a syntax error

• Do not confuse the equality operator (= =) with the assignment operator (=)– (= =) reads “is equal to”– (=) reads “gets” or “gets the value of”

© 2003 Prentice Hall, Inc. All rights reserved.

32

Decision Making: Equality and Relational Operators

• using statements– Eliminate use of std:: prefix (avoid repetitions in

the program)– Write cout instead of std::cout

1 // Fig. 2.13: fig02_13.cpp2 // Using if statements, relational3 // operators, and equality operators.4 #include <iostream>5 6 using std::cout; // program uses cout7 using std::cin; // program uses cin 8 using std::endl; // program uses endl9 10 // 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 user15 16 cout << "Enter two integers, and I will tell you\n"17 << "the relationships they satisfy: ";18 cin >> num1 >> num2; // read two integers19 20 if ( num1 == num2 ) 21 cout << num1 << " is equal to " << num2 << endl;22 23 if ( num1 != num2 )24 cout << num1 << " is not equal to " << num2 << endl;25

© 2003 Prentice Hall, Inc.All rights reserved.

Outline33

fig02_13.cpp(1 of 2)

26 if ( num1 < num2 )27 cout << num1 << " is less than " << num2 << endl;28 29 if ( num1 > num2 )30 cout << num1 << " is greater than " << num2 << endl;31 32 if ( num1 <= num2 )33 cout << num1 << " is less than or equal to "34 << num2 << endl;35 36 if ( num1 >= num2 )37 cout << num1 << " is greater than or equal to "38 << num2 << endl;39 40 return 0; // indicate that program ended successfully41 42 } // end function main

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

© 2003 Prentice Hall, Inc.All rights reserved.

Outline34

fig02_13.cpp(2 of 2)

fig02_13.cppoutput (1 of 2)

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

© 2003 Prentice Hall, Inc.All rights reserved.

Outline35

fig02_13.cppoutput (2 of 2)