61
1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

Embed Size (px)

Citation preview

Page 1: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

1

CS102Introduction to Computer

Programming

Week 3

Chapter 3

Expressions and Interactivity

Page 2: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

2

Chapter 3 Expressions and Interactivity

• The cin object

• Mathematical Expressions

• Automatic conversion and promotion

• Overflow and underflow

• The typecast operator

• The power of constants

• Multiple assignments

• Combined assignment operators

• Formatting output with stream manipulators

• Formatted input

• More mathematical library functions

Page 3: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

3

The cin Object• cin is the standard input object

– Causes the program to wait until information is typed at the keyboard and the enter key is pressed

– Automatically converts the data read to the type of the variable used to store it

– Truncates floating point numbers that are to be stored in integer variables

• Notice the >> and << operators appear to point in the direction information is flowing.

Concept - The cin object reads information typed at the keyboard

Concept - The cin object reads information typed at the keyboard

Page 4: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

4

Program 3-1#include <iostream.h>void main(void){

int Length, Width, Area;cout <<"This program calculates the";

cout <<" area of a rectangle.\n";cout <<"What is the length of the "; cout <<" rectangle? ";cin >>Length;cout <<"What is the width of the"; cout <<" rectangle? ";cin>>Width;Area = Length * Width;cout <<"The area of the rectangle is " cout << Area << ".\n";

}

Program Output This program calculates the area of a rectangle.What is the length of therectangle? 10 [Enter]

What is the width of therectangle? 20 [Enter]

The area of the rectangle is 200.

This program will calculate the area of any rectangle

Page 5: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

5

Program 3-2/* This program reads the length

and width of a rectangle. It calculates the rectangle's area and displays the value on the screen. */

#include <iostream.h>void main(void){

int Length, Width, Area;cin >> Length;cin >> Width;Area = Length * Width;cout << "The area of the rectangle is " << Area << endl;

}

Program Output

10 [Enter] 20 [Enter]

The area of the rectangle is 200.

This program does not let the user know what is needed as input.

Page 6: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

6

The cin Object• Multiple values are separated by spaces• The Variables are assigned values in the order

they are entered.• cin can read character strings into a properly

defined variable– If the input string is too large, adjacent memory can be

corrupted

– Don't forget to leave room for the null character

– The string can not contain spaces

Concept - The cin object can gather multiple values at onceConcept - The cin object can gather multiple values at once

Page 7: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

7

Program 3-3#include <iostream.h>void main(void){

int Length, Width, Area;cout <<"This program calculates"; cout <<" the area of a rectangle.\n";cout <<"Enter the length and width"; cout <<" of the rectangle separated"; cout <<" by a space. \n";cin >> Length >> Width;Area = Length * Width;cout <<"The area of the rectangle is "; cout << Area << endl;

}

Program Output This program calculatesthe area of a rectangle.Enter the length and widthof the rectangle separatedby a space.10 20 [Enter]The area of the rectangle is200

This program accepts multiple entries on one line

Page 8: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

8

Program 3-4 or 3-3 version 4/* This program demonstrates how cin can

read multiple values of different data types. */

 #include <iostream.h> void main(void){

int Whole;float Fractional;char Letter;

 cout << "Enter an integer, a float, ";

cout << "and a character: ";cin >> Whole >> Fractional >> Letter;cout << "Whole: " << Whole << endl;cout << "Fractional: " << Fractional << endl;cout << "Letter: " << Letter << endl;

}

Program Output Enter an integer, a float, and a character: 4 5.7 b [Enter]

Whole: 4 Fractional: 5.7 Letter: b

Values of different data types can be entered on the same line. They must be entered in the correct order

Page 9: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

9

Program 3-5 or 3-4 version 4

Program Output

What is your name? Charlie [Enter]

Good morning Charlie

// This program demonstrates how cin can read a string into a character array. */

#include <iostream.h>void main(void){

char Name[21];cout << "What is your name? ";cin >> Name;cout << "Good morning "; cout << Name << endl;

}

cin can read strings as well as numbers. Strings are stored in character arrays.

Page 10: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

10

Program 3-6 or 3-5 version 4

// This program reads two strings // into two character arrays.

#include <iostream.h>void main(void){

char First[16], Last[16];  cout << "Enter your first and last";

cout << " names and I will\n";cout << "reverse them.\n"; cin >> First >> Last;cout << Last << ", " << First;cout <<endl;

}

Program Output Enter your first and lastnames and I willreverse them.Johnny Jones [Enter]Jones, Johnny

Note that a space is used to separate the two inputs. If you want to read in a string with embedded spaces you can not use the cin command

Page 11: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

11

Notes on strings:• If a character array is intended to hold strings, it

must be at least one character larger than the largest string that will be stored in it.

• The cin object will let the user enter a string larger than the array can hold. If this happens, the string will overflow the array’s boundaries and destroy other information in memory.

• If you wish the user to enter a string that has spaces in it, you cannot use this input method.

Page 12: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

12

3.1 What header file must be included in programs using cin?

3.2 What type of variable is used to hold a C-string?

3.3 Write a declaration statement for a character array named customer. It should be large enough to hold 52 characters in length.

3.4 T or F: cin requires the user to press the [Enter] key when finished entering data

3.5 Assume value is an integer variable. If the user enters 3.14 in response to the following programming statement, What will be stored in value

cin >> value;A. 3.14B. 3C. 0D. Nothing, an error message is displayed

Check point 3.1

<iostream>

char

char customer[53];

Page 13: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

13

Mathematical Expressions• A mathematical expression is a

programming statement that has a value

• Consists of operators and their operands– operands can be constants or variables

• Can be used by the cout object to display the value of the expression.

cout << (Operand1 operator Operand2);

Concept - C++ allows you to construct complex mathematical expressions using multiple operators and

grouping symbols

Concept - C++ allows you to construct complex mathematical expressions using multiple operators and

grouping symbols

Page 14: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

14

Program 3-7 or 3-6 version 4/* This program asks the user top enter the numerator and denominator of a fraction and it displays the decimal value*/

void main(void){

float Numerator, Denominator; 

cout << "This program shows the ";cout << "decimal value of a fraction.\

n";cout << "Enter the numerator: ";cin >> Numerator;cout << "Enter the denominator: ";cin >> Denominator;cout << "The decimal value is ";cout << (Numerator / Denominator);

}

Program Output This program shows thedecimal value of a fraction.Enter the numerator: 3 [Enter]

Enter the denominator: 16 [Enter]

The decimal value is0.1875

Mathematical expressions can be used in cout statements. Note the inputs are integers but they are converted to floats for storage

Page 15: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

15

Precedence• If two operators share an operand the one

with the highest precedence works firsthighest - (Unary negation)

* / %

Lowest + -

• Example 6 * 7 - 3 = 39 (not 24)

• Example 3 + 12 / 3 = 7 (not 5 )

Mathematical expressions are evaluated left to rightMathematical expressions are evaluated left to right

Page 16: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

16

Associativity• Associativity is either left to right or right

to left

• If two operators sharing an operand have the same precedence, they work according to their Associativity.Right to left - (Unary negation)

left to right * / %

left to right + -

Associativity is the order in which an operator works with its operands

Associativity is the order in which an operator works with its operands

Page 17: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

17

Grouping With Parentheses• Parentheses are used to force some

operations to be performed before others– examples:

(5+2)*4 = 28

10 / (5-3) = 5

(4 + 17 ) % 2 -1 = 0

Page 18: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

18

No Exponents Please• Include the following file in your program to deal

with exponents:#include <cmath> (or math.h, old way)

• Use the pow function to raise a value (x) to the power (y) (x and y may be int or float)

• example: the area of a circle is (radius2)

Area = 3.14 * pow(radius,2);

• The pow function returns a double

Concept - C++ does not have an operator to raise a number to a power. A library function must be used

Concept - C++ does not have an operator to raise a number to a power. A library function must be used

Page 19: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

19

Program 3-8 or 3-7 version 4/*This program calculates the area of a circle. The formula for the radius of a circle is Pi times the radius squared Pi is 3.14159 */#include <iostream.h>#include <math.h>void main(void){

double Area, Radius;cout << "This program calculates the

";cout << " area of a circle.\n";cout << "What is the radius of ";cout << "the circle? ";cin >> Radius;Area = 3.14159 * pow(Radius,2);cout << "The area is " << Area;

}

Program Output

This program calculates the

area of a circle.

What is the radius of the

circle?

10 [Enter]

The area is 314.159

This program uses the pow function to find the area of a circle

Page 20: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

20

3.11 Write C++ expressions for the following algebraic expressions:

y = 6x

a = 2b + 4c

y = x2

x + 2

g =---------

z2

3.10 Complete the table below by writing the value of each expression in the "Value" column.

Expression Value

6 + 3 * 5

12 / 2 – 4

9 + 14 * 2 – 6

5 + 19 % 3 – 1

(6 + 2 ) * 3

Check Point 3.2

21

2

31

5

24

y = 6 * x;

a = (2 * b ) + (4 * c ) ;

y = pow( x,2);

g = (x + 2) / pow( z,2);

Page 21: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

21

3.3 When you Mix Apples and Oranges: Type Coercion Rules

Concept - When an operator's operands are of different data types, C++ will automatically convert them to the same data type

Concept - When an operator's operands are of different data types, C++ will automatically convert them to the same data type

• Rule 1 - Chars,shorts, and unsigned shorts are automatically promoted to int.

• Rule 2 - If two values are of different types the lower-ranking one is promoted to the type of the higher-ranking on

• Rule 3 - when the value of an expression is assigned to a variable it will be converted to the data type of the variable

Page 22: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

22

3.4 Overflow and Underflow

• When a variable is assigned a value that is too large or too small in range for that variable’s data type, the variable overflows or underflows.– Overflow - when a variable is assigned a number that is

too large for its data type

– Underflow - when a variable is assigned a number that is too small for its data type

Page 23: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

23

Overflow and Underflow• If an integer variable overflows or

underflows the value wraps back around – no warning or error message is generated

• If a floating point variable overflows or underflows the result depends on the compiler.

Concept - When a variable is assigned a value that is too large or too small in range for that variables data type, the variable

underflows or overflows

Concept - When a variable is assigned a value that is too large or too small in range for that variables data type, the variable

underflows or overflows

Page 24: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

24

Program 3-9 or 3-8 version 4

//This program demonstrates integer overflow and underflow#include <iostream.h>void main(void){

short TestVar = 32767;cout << TestVar << endl;TestVar = TestVar + 1;cout << TestVar << endl;TestVar = TestVar - 1;cout << TestVar << endl;

}

Program Output 32767

-32768

32767

This program assumes that an integer is stored in two bytes of memory

Page 25: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

25

Program 3-10 or 3-9 version 4

//This program can be used to see// how your system handles floating// point overflow and underflow.#include <iostream.h>void main(void){

float Test;Test = 2.0e38 * 1000;

// Should overflow Testcout << Test << endl;Test = 2.0e-38 / 2.0e38;

// Should underflow Testcout << Test << endl;

}

Program Output1.#INF

0

This compiler does not generate a runtime error but the value stored may not be usable

Page 26: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

26

3.5 The Typecast Operator• The typecast operator manually promotes or

demotes a value– works on either an expression or a variable– the conversion is temporary– truncation may occur

Example:

Val = int(number);

Val = float(digit1) / digit2; //prevents integer divide

Val = float (digit1/digit2); //allows integer divide

Val = (int) number; // is also correct

Page 27: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

27

Program 3-11 or 3-10 version 4#include <iostream.h>

void main(void)

{

int Months, Books;

float PerMonth;

cout << "How many books do you ";

cout << "plan to read? ";

cin >> Books;

cout << "How many months will ";

cout << "it take you to read them? ";

cin >> Months;

PerMonth = float(Books) / Months;

cout << "That is " << PerMonth

cout << " books per month.\n";

Program Output

How many books do you

plan to read?

30 [Enter]

How many months will

it take you to read them?

7 [Enter]

That is 4.285714

books per month.

This program uses the type cast operator to avoid integer division

Page 28: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

28

Typecast Warnings• In Program 3-11, the following statement would

still have resulted in integer division:

PerMonth = float(Books / Months);• Because the division is performed first and then

the result is type cast to a float. • Type casting has no effect on the values it

operates on. A temporary variable is created for the duration of the instruction.

Page 29: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

29

Program 3-12 or 3-11 version 4/* This program uses a typecast operator to

print a character from a number.*/ #include <iostream.h> void main(void){

int Number = 65; 

cout << Number << endl;cout << char(Number) << endl;

}

Program Output

65

A

Page 30: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

30

The Power of Constants• Makes the program more readable

• Simplifies maintenance

Example:

const float PI = 3.14159;

or

#define PI 3.14159

• Using a named constant will not make the program run more efficiently

Concept - Constants may be given names that symbolically represent them in a program

Concept - Constants may be given names that symbolically represent them in a program

Page 31: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

31

Program 3-13 or 3-12 version 4#include <iostream.h>#include <math.h>void main(void){

const float Pi = 3.14159;double Area, Radius;cout << "This program calculates"; cout << " the area of a circle.\n";cout << "What is the radius of ";cout << " the circle? ";cin >> Radius;Area = Pi * pow(Radius,2);cout << "The area is " << Area;

}

Program OutputThis program calculates the area of a circle.What is the radius of the circle? 5 [Enter]

The area is 78.5397

The literal 3.14159 has been replaced with a floating point constant.

Page 32: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

32

The #define Directive• The older C-style method of creating named

constants is with the #define directive, although it is preferable to use the const modifier.

#define PI 3.14159• is roughly the same as

const float PI=3.14159;

Page 33: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

33

Program 3-14 or 3-13 version 4#include <iostream.h>#include <math.h>// needed for pow function#define PI 3.14159

void main(void){double Area, Radius;

cout << "This program calculates";cout << " the area of a circle.\n";cout << "What is the radius of the";cout << " circle? ";cin >> Radius;Area = PI * pow(Radius, 2);cout << "The area is " << Area;

Program OutputThis program calculates the area of a circle.What is the radius of the circle? 5 [Enter]The area is 78.5397

Remember that the preprocessor performs a textual substitution. So each instance of Pi becomes a floating point literal.

Page 34: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

34

Multiple Assignments• Groups like-variables in one statement• May be used within an expression

– has the lowest precedence of all arithmetic operations

– Should be placed within parentheses

• May be confusing if not clearly documented

Example:

a = b = c = d = 12

Concept - Multiple assignment means to assign the same value to several variables with one statement.

Concept - Multiple assignment means to assign the same value to several variables with one statement.

/

Page 35: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

35

Combined Assignment Operators• Eliminates the need to enter the variable

name twice

Operator Example usage Equivalent to

+= x += 5; x = x + 5;

-= y -=2; y = y - 2;

*= z *= 10; z = z * 10;

/= a /=b; a = a / b;

%= c %= 3; c = c % 3;Concept - The combined assignment operators make common

arithmetic operations easierConcept - The combined assignment operators make common

arithmetic operations easier

Page 36: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

36

3.8 Formatting Output WithString Manipulation

• setw(n) n = the width of the display

• setprecision(n) n = the number of significant digits or decimal places displayed

• flags:• left

• right

• fixed

Concept - The cout object provides ways to format data as it is being displayed.

Concept - The cout object provides ways to format data as it is being displayed.

• dec• hex• oct• scientific

• showpoint• showpos • uppercase

Page 37: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

37

Program 3-17 or 3-15 version 4//This program displays three rows of numbers#include<iostream.h> void main(void){

int Num1 = 2897, Num2 = 5, Num3 = 837, Num4 = 34, Num5 = 7, Num6 = 1623, Num7 = 390, Num8 = 3456, Num9 = 12;// Display the first row of numberscout << Num1 << " "; cout << Num2 << " "; cout << Num3 << endl;// Display the second row of numberscout << Num4 << " "; cout << Num5 << " "; cout << Num6 << endl;// Display the third row of numberscout << Num7 << " ";cout << Num8 << " "; cout << Num9 << endl;

}

Program Output

2897 5 837

34 7 1623

390 3456 12

This program displays values with no output formatting. There is no column alignment.

Page 38: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

38

Program 3-18 or 3-16 version 4

/*This program displays three rows of numbers. */

#include <iostream.h>

#include <iomanip.h>

void main(void)

{

int Num1 = 2897, Num2 = 5, Num3 = 837,

Num4 = 34, Num5 = 7, Num6 = 1623,

Num7 = 390, Num8 = 3456,

Num9 = 12;

// Display the first row of numbers

cout << setw(4) << Num1 << " ";

cout << setw(4) << Num2 << " ";

cout << setw(4) << Num3 << endl;

// Display the second row of numbers

cout << setw(4) << Num4 << " ";

cout a<< setw(4) << Num5 << " ";

cout << setw(4) << Num6 << endl;

// Display the third row of numbers

cout << setw(4) << Num7 << " ";

cout << setw(4) << Num8 << " ";

cout << setw(4) << Num9 << endl;

} Program Output

2897 5 837

34 7 1623

390 3456 12

The setw command is used to line up the columns. The default is right justified

Page 39: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

39

Program 3-19 or 3-17 version 4

/* This program demonstrates the setw manipulator being used with values of various data types. */

#include <iostream.h>#include <iomanip.h>void main(void){

int IntValue = 3928;float FloatValue = 91.5;char StringValue[14] = "John J. Smith";cout << "(" << setw(5); cout << IntValue << ")" << endl;cout << "(" << setw(8);cout << FloatValue << ")" << endl;cout << "(" << setw(16);cout << StringValue << ")" << endl;

}

Program Output( 3928)

( 91.5)

( John J. Smith)

setw can format the output of any data type

Page 40: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

40

Precision• Floating point values may be rounded to a

number of significant digits, or precision, which is the total number of digits that appear before and after the decimal point.

Page 41: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

41

Program 3-20 or 3-18 version 4

/* This program demonstrates how setprecision rounds floating point value. */ 

#include <iostream.h>#include <iomanip.h>void main(void){

float Quotient, Number1 = 132.364,Number2 = 26.91;

Quotient = Number1 / Number2;cout << Quotient << endl;cout << setprecision(5) << Quotient << endl;cout << setprecision(4) << Quotient << endl;cout << setprecision(3) << Quotient << endl;cout << setprecision(2) << Quotient << endl;cout << setprecision(1) << Quotient << endl;

}

Program Output

4.918774.91884.9194.924.95

setprecision does not truncate numbers it rounds them up

Page 42: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

42

Table 3-11Number Manipulator Value

Displayed

28.92786 setprecision(3) 28.9

21. setprecision(5) 21

109.5 setprecision(4) 109.5

34.28596 setprecision(2) 34

cout << fixed;28.92786 setprecision(3) 28.928

21. setprecision(5) 21.00000

109.5 setprecision(4) 109.5000

34.28596 setprecision(2) 34.29

Page 43: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

43

Program 3-21 or 3-19 version 4/* This program asks for sales figures

for 3 days. The total sales is calculated and displayed in a table*/

#include <iostream>#include <iomanip>Using namespace std; int main(){

float Day1, Day2, Day3, Total; 

cout << "Enter the sales for day 1: ";cin >> Day1;cout << "Enter the sales for day 2: ";cin >> Day2;cout << "Enter the sales for day 3: ";cin >> Day3;Total = Day1 + Day2 + Day3;

cout << "\nSales Figures\n";

cout << "-------------\n";

cout << setprecision(5);

cout << "Day 1: " << setw(8) << Day1;

cout << endl;

cout << "Day 2: " << setw(8) << Day2;

cout << endl;

cout << "Day 3: " << setw(8) << Day3;

cout << endl;

cout << "Total: " << setw(8) << Total;

cout << endl;

return 0;

}

This program will display 5 significant digits. But what if the total takes 6

Page 44: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

44

Program Output

Enter the sales for day 1: 321.57 [Enter]Enter the sales for day 2: 269.62 [Enter]Enter the sales for day 3: 1307.77 [Enter] Sales Figures-------------Day 1: 321.57Day 2: 269.62Day 3: 1307.8Total: 1899 The value has been truncated

Page 45: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

45

Program 3-22 or 3-20 version 4#include <iostream>#include <iomanip>using namespace std;int main(){

float Day1, Day2, Day3, Total;cout << "Enter the sales for day 1: ";cin >> Day1;cout << "Enter the sales for day 2: ";cin >> Day2;cout << "Enter the sales for day 3: ";cin >> Day3;Total = Day1 + Day2 + Day3;cout << "\nSales Figures\n";cout << "------\n";cout << setprecision(2) << fixed << showpoint;cout << "Day 1: " << setw(8) << Day1 << endl;cout << "Day 2: " << setw(8) << Day2 << endl;cout << "Day 3: " << setw(8) << Day3 << endl;cout << "Total: " << setw(8) << Total << endl;return 0;}

Program Output (modified) Enter the sales for day 1: 321.00

[Enter]Enter the sales for day 2: 869.26

[Enter]Enter the sales for day 3: 403.77

[Enter]Sales Figures------------- Day 1: 321 Day 2: 869.26Day 3: 403.77Total: 1594.90

The decimal point is displayed only if there are digits to the right of it.

Page 46: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

46

Stream Manipulatorfixed Displays floating-point numbers in fixed

point notation.setw(n) Establishes a print field of n spaces.showpoint Causes a decimal point and trailing zeros

to be displayed, even if there is no fractional part.

setprecision(n) Sets the precision of floating-point numbers

left Causes subsequent output to be left justified.

right Causes subsequent output to be right justified.

Page 47: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

47

Important points about the way cin handles field widths:

• The field width only pertains to the very next item entered by the user.

• cin stops reading input when it encounters a whitespace character or when it has all the character it needs. – White space characters include the [Enter] key,

space, and tab.

Page 48: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

48

Program 3-28 or 3-22 version 4

// This program demonstrates cin's// getline member function.#include <iostream.h>#include <iomanip.h>void main(void){

char String[81];cout << "Enter a sentence: ";cin.getline(String, 81);cout << "You entered "; cout << String << endl;

}

Program Output

Enter a sentence:

To be, or not to be. [Enter]

You entered

To be, or not to be.

cin.getline will read one less character than the second parameter specifies to make room for the NULL character

Page 49: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

49

Program 3-29 or 3-23 version 4

#include <iostream.h>#include <iomanip.h>

void main(void){

char Ch;cout << "Type a character

cout << " and press cout << " Enter: ";cin >> Ch;cout << "You entered " << Ch << endl;

}

Program Output Type a character and press Enter: A [Enter] You entered A

cin requires that the user enter only a single. non white space character. All other input is ignored.

Page 50: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

50

Program 3-30 or 3-23 version 4#include <iostream.h>#include <iomanip.h> void main(void){

char Ch; 

cout << "This program has"; cout << " paused. Press";cout << " enter to continue.";cin.get(Ch);cout << "Thank you!"; cout << endl;

}

Program OutputThis program has paused. Press Enter to continue. [Enter]Thank you!

cin.get will accept any key, particularly the return key

Page 51: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

51

Program 3-31 or 3-23? version 4#include <iostream.h>#include <iomanip.h>

void main(void){

char Ch; 

cout << "Type a character"; cout << " and press Enter: ";cin.get(Ch);cout << "You entered ";cout << Ch << endl;cout << "Its ASCII code is ";

cout << int(Ch) << endl;} 

Program Output

Type a character and press Enter: [Enter]

You entered

Its ASCII code is

10

cin.get will accept non printable and white space characters

Page 52: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

52

Mixing cin and cin.get• Mixing cin.get with cin can cause an annoying

and hard-to-find problem.• Pressing the [Enter] key after inputting a

number will cause the newline character to be stored in the keyboard buffer. To avoid this, use cin.ignore:

• cin.ignore(20,’\n’); // will skip the next 20 chars in the input buffer or until a newline is encountered, whichever comes first

• cin.ignore(); //will skip the very next character in the input buffer

Page 53: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

53

More Mathematical Library Functions

• absAbsolute Value

• expex

• fmod– modulus for

floating point

Concept - The C++ runtime library provides several functions for performing complex mathematical operations.

Concept - The C++ runtime library provides several functions for performing complex mathematical operations.

• lognatural log

• log10base 10 log

• sqrtsquare root

• coscosine

• sinsine

• tantangent

Page 54: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

54

Table 3-14 or 3-13 version 4

abs y = abs(x);Returns the absolute value of the argument. The argument and the return value are integers.

cos y = cos(x);Returns the cosine of the argument. The argument should be an angle expressed in radians. The return type and the argument are doubles.

exp y = exp(x);Computes the exponential function of the argument, which is x. The return type and the argument are doubles.

Page 55: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

55

Table 3-14 continued or 3-13 version 4

fmod y = fmod(x, z);Returns, as a double, the remainder of the first argument divided by the second argument.

log y = log(x);

Returns the natural logarithm of the argument. The return type and the argument are doubles.

log10 y = log10(x);

Returns the base-10 logarithm of the argument. The return type and the argument are doubles.

Page 56: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

56

Table 3-14 continued or 3-13 version 4

sin y = sin(x);

Returns the sine of the argument. The argument should be an angle expressed in radians. The return type and the argument are doubles.

sqrt y = sqrt(x);

Returns the square root of the argument. The return type and argument are doubles.

tan y = tan(x);

Returns the tangent of the argument. The argument should be an angle expressed in radians. The return type and the argument are doubles.

Page 57: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

57

Program 3-32 or 3-24 version 4

#include <iostream.h>#include <math.h> // For sqrtvoid main(void){

float A, B, C; 

cout << "Enter the length of side A: ";cin >> A;cout << "Enter the length of side B: ";cin >> B;C = sqrt(pow(A, 2.0) + pow(B, 2.0));cout.precision(2);cout << "The length of the ";cout << "hypotenuse is "<< C << endl;

}

Program Output Enter the length of side A: 5.0 [Enter]Enter the length of side B: 12.0 [Enter]

The length of the hypotenuse is 13

This program uses the sqrt function to find the hypotenuse of a right triangle

Page 58: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

58

Random Numbers

y = rand(); (from the stdlib.h library)– returns pseudo-random number– C++ returns the same sequence of

numbers each time the program executes

srand(x); (from the stdlib.h library)– seeds the random number generator so

that a new sequence of numbers will be generated

Concept - Some programming techniques require the use of randomly generated numbers

Concept - Some programming techniques require the use of randomly generated numbers

Page 59: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

59

Program 3-33 or 3-25 version 4

// This program demonstrates random//numbers. #include <iostream.h>#include <stdlib.h> void main(void){

unsigned Seed;  cout << "Enter a seed value: "; cin >> Seed; srand(Seed); cout << rand() << endl; cout << rand() << endl; cout << rand() << endl;}

Program Output

Enter a seed value: 5

1731

32036

21622

Program Output with Other Example Input

Enter a seed value: 16

5540

29663

9920

It still gives the same numbers for the same seed value

Page 60: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

60

Basic File I/O• The file fstream.h contains all the declarations

necessary for file operations#include <fstream.h>• It declares the following data types

– ofstream used to open a file for output– ifstream used to open a file for input– fstream used to open a file for both input and output

• You must declare an object of one of these data types

i.e ifstream InputFile;

Page 61: 1 CS102 Introduction to Computer Programming Week 3 Chapter 3 Expressions and Interactivity

61

Reading from a file• Once the file has been opened you can read data

from it similar to the way cin is usedInputFile >> Variable_Name

• The data is read in the order found in the file• You can create a file using notepad or any other

word processor.• Make sure the file name matches the file name in

the open statement exactly • The file must be in the same directory that the

executable file is located or you will need to specify the exact path.