- 131 Views
- Updated on

Download Presentation
## CS102 Introduction to Computer Programming

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

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

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

Program 3-1

This program will calculate the area of any rectangle

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

rectangle?10 [Enter]

What is the width of the

rectangle?20 [Enter]

The area of the rectangle is 200.

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;

}

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

Program Output

10 [Enter]

20 [Enter]

The area of the rectangle is 200.

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 once

Program 3-3

This program accepts multiple entries on one line

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

the area of a rectangle.

Enter the length and width

of the rectangle separated

by a space.

10 20 [Enter]

The area of the rectangle is

200

Program 3-4 or3-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;

}

Values of different data types can be

entered on the same line. They must be

entered in the correct order

Program Output

Enter an integer, a float,

and a character: 4 5.7 b [Enter]

Whole: 4

Fractional: 5.7

Letter: b

Program 3-5 or3-4 version 4

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

Program Output

What is your name? Charlie [Enter]

Good morning Charlie

Program 3-6 or3-5 version 4

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

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

names and I will

reverse them.

Johnny Jones [Enter]

Jones, Johnny

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.

Check point 3.1

- 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;
- 3.14
- 3
- 0
- Nothing, an error message is displayed

<iostream>

char

char customer[53];

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

Program 3-7 or3-6 version 4

Mathematical expressions can be used in cout statements.

Note the inputs are integers but they are converted to floats for storage

/* 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 the

decimal value of a fraction.

Enter the numerator: 3 [Enter]

Enter the denominator: 16 [Enter]

The decimal value is

0.1875

Precedence

- If two operators share an operand the one with the highest precedence works first

highest - (Unary negation)

* / %

Lowest + -

- Example 6 * 7 - 3 = 39 (not 24)
- Example 3 + 12 / 3 = 7 (not 5 )

Mathematical expressions are evaluated left to right

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

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

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

Program 3-8 or3-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;

}

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

Program Output

This program calculates the

area of a circle.

What is the radius of the

circle?

10 [Enter]

The area is 314.159

Check Point 3.2

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

y = 6 * x;

21

2

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

31

5

y = pow( x,2);

24

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

3.3 When you Mix Apples and Oranges:Type Coercion Rules

- 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

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

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

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

Program 3-9 or3-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;

}

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

Program Output

32767

-32768

32767

Program 3-10 or3-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 Test

cout << Test << endl;

Test = 2.0e-38 / 2.0e38;

// Should underflow Test

cout << Test << endl;

}

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

Program Output

1.#INF

0

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

Program 3-11 or3-10 version 4

This program uses the type cast operator to avoid integer division

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

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.

Program 3-12 or3-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

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

Program 3-13 or3-12 version 4

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

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

This program calculates

the area of a circle.

What is the radius of

the circle?

5 [Enter]

The area is 78.5397

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;

Program 3-14 or3-13 version 4

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

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

This program calculates

the area of a circle.

What is the radius of the

circle?

5 [Enter]

The area is 78.5397

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.

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 easier

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

- dec
- hex
- oct
- scientific

- showpoint
- showpos
- uppercase

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

Program 3-17 or3-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 numbers

cout << Num1 << " ";

cout << Num2 << " ";

cout << Num3 << endl;

// Display the second row of numbers

cout << Num4 << " ";

cout << Num5 << " ";

cout << Num6 << endl;

// Display the third row of numbers

cout << Num7 << " ";

cout << Num8 << " ";

cout << Num9 << endl;

}

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

Program Output

2897 5 837

34 7 1623

390 3456 12

Program 3-18 or3-16 version 4

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

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

Program 3-19 or3-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;

}

setw can format the output of any data type

Program Output

( 3928)

( 91.5)

( John J. Smith)

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.

Program 3-20 or3-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;

}

setprecision does not truncate numbers it rounds them up

Program Output

4.91877

4.9188

4.919

4.92

4.9

5

Table 3-11

Number 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

Program 3-21 or3-19 version 4

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

/* 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;

}

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

Day 2: 269.62

Day 3: 1307.8

Total: 1899 The value has been truncated

Program 3-22 or3-20 version 4

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

Day 3: 403.77

Total: 1594.90

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

}

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

Stream Manipulator

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

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.

Program 3-28 or3-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;

}

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

Program Output

Enter a sentence:

To be, or not to be. [Enter]

You entered

To be, or not to be.

Program 3-29 or3-23 version 4

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

#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

Program 3-30 or3-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;

}

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

Program Output

This program has

paused. Press

Enter to continue.

[Enter]

Thank you!

Program 3-31 or3-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;

}

cin.get will accept non printable and white space characters

Program Output

Type a character and press Enter: [Enter]

You entered

Its ASCII code is

10

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

More Mathematical Library Functions

- cos
- cosine
- sin
- sine
- tan
- tangent

- abs

Absolute Value

- exp

ex

- fmod
- modulus for floating point

- log
- natural log
- log10
- base 10 log
- sqrt
- square root

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

Table 3-14 or3-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.

Table 3-14 continued or3-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.

Table 3-14 continued or3-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.

Program 3-32 or3-24 version 4

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

#include <iostream.h>

#include <math.h> // For sqrt

void 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

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

Program 3-33 or3-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;

}

It still gives the same numbers for the same seed value

Program Output

Enter a seed value: 5

1731

32036

21622

Program Output with Other Example Input

Enter a seed value: 16

5540

29663

9920

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;

Reading from a file

- Once the file has been opened you can read data from it similar to the way cin is used

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

Download Presentation

Connecting to Server..