CS102 Introduction to Computer Programming

Download Report

Transcript CS102 Introduction to Computer Programming

CS102
Introduction to Computer
Programming
Week 3
Chapter 3
Expressions and Interactivity
1
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
2
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
3
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";
}
This program will calculate the area
of any rectangle
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.
4
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.
5
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
6
Program 3-3
#include <iostream.h>
This program accepts multiple
entries on one line
void main(void)
{
int Length, Width, Area;
Program Output
cout <<"This program calculates";
This program calculates
cout <<" the area of a rectangle.\n";
the area of a rectangle.
cout <<"Enter the length and width"; Enter the length and width
cout <<" of the rectangle separated"; of the rectangle separated
cout <<" by a space. \n";
by a space.
cin >> Length >> Width;
10 20 [Enter]
Area = Length * Width;
The area of the rectangle is
cout <<"The area of the rectangle is "; 200
cout << Area << endl;
}
7
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;
Values of different data types can be
entered on the same line. They must be
entered in the correct order
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
}
8
Program 3-5 or 3-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
9
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;
}
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
Program Output
Enter your first and last
names and I will
reverse them.
Johnny Jones [Enter]
Jones, Johnny
10
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.
11
Check point 3.1
3.1 What header file must be included in programs using cin?
<iostream>
3.2 What type of variable is used to hold a C-string?
char
3.3 Write a declaration statement for a character array named customer. It
should be large enough to hold 52 characters in length.
char customer[53];
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.
B.
C.
D.
3.14
3
0
Nothing, an error message is displayed
12
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
13
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);
}
Mathematical expressions can be
used in cout statements.
Note the inputs are integers but they
are converted to floats for storage
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
14
Precedence
• If two operators share an operand the one
with the highest precedence works first
highest - (Unary negation)
*
/
Lowest +
-
• Example
• Example
%
6 * 7 - 3 = 39 (not 24)
3 + 12 / 3 = 7 (not 5 )
Mathematical expressions are evaluated left to right
15
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
left to right
left to right
- (Unary negation)
*
/
+
-
%
Associativity is the order in which an operator works with its
operands
16
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
17
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
18
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;
}
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
19
Check Point 3.2
3.10 Complete the table below by writing
the value of each expression in the
"Value" column.
3.11 Write C++ expressions for the
following algebraic expressions:
Expression
Value
6+3*5
12 / 2 – 4
9 + 14 * 2 – 6
5 + 19 % 3 – 1
(6 + 2 ) * 3
y = 6x
y = 6 * x;
a = 2b + 4c
a = (2 * b ) + (4 * c ) ;
y = x2
y = pow( x,2);
x+2
g =--------z2
g = (x + 2) / pow( z,2);
21
2
31
5
24
20
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
21
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
22
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
23
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;
}
This program assumes that an
integer is stored in two bytes of
memory
Program Output
32767
-32768
32767
24
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 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
25
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
26
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";
This program uses the type cast
operator to avoid integer division
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.
27
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.
28
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
}
29
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
30
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;
}
The literal 3.14159 has been replaced
with a floating point constant.
Program Output
This program calculates
the area of a circle.
What is the radius of
the circle?
5 [Enter]
The area is 78.5397
31
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;
32
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;
Remember that the preprocessor
performs a textual substitution. So
each instance of Pi becomes a
floating point literal.
Program Output
This program calculates
the area of a circle.
What is the radius of the
circle?
5 [Enter]
The area is 78.5397
33
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.
34
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
35
3.8 Formatting Output With
String 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.
36
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 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 << " ";
This program displays values with
no output formatting. There is no
column alignment.
Program
Output
2897 5 837
34 7 1623
390 3456 12
37
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;
The setw command is used to line up
the columns. The default is right
justified
// 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
// Display the first row of numbers
cout << setw(4) << Num1 << " ";
cout << setw(4) << Num2 << " ";
cout << setw(4) << Num3 << endl;
2897
34
390
5
7
3456
837
1623
12
38
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;
}
setw can format the output of
any data type
Program Output
( 3928)
(
91.5)
(
John J. Smith)
39
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.
40
Program 3-20 or 3-18 version 4
/* This program demonstrates how
setprecision rounds floating point value. */
#include <iostream.h>
#include <iomanip.h>
setprecision does not truncate
void main(void)
numbers it rounds them up
{
float Quotient, Number1 = 132.364,
Number2 = 26.91;
Program
Quotient = Number1 / Number2;
Output
cout << Quotient << endl;
cout << setprecision(5) << Quotient << endl;
4.91877
cout << setprecision(4) << Quotient << endl;
4.9188
cout << setprecision(3) << Quotient << endl;
4.919
cout << setprecision(2) << Quotient << endl;
4.92
cout << setprecision(1) << Quotient << endl;
4.9
}
5
41
Table 3-11
Number
Manipulator
28.92786
setprecision(3)
21.
setprecision(5)
109.5
setprecision(4)
34.28596
setprecision(2)
cout << fixed;
28.92786
setprecision(3)
21.
setprecision(5)
109.5
setprecision(4)
34.28596
setprecision(2)
Value Displayed
28.9
21
109.5
34
28.928
21.00000
109.5000
34.29
42
Program 3-21 or 3-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;
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;
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;
}
43
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
44
Program 3-22 or 3-20 version 4
#include <iostream>
Program Output (modified)
#include <iomanip>
Enter the sales for day 1: 321.00
using namespace std;
[Enter]
int main()
Enter the sales for day 2: 869.26
[Enter]
{
Enter the sales for day 3: 403.77
float Day1, Day2, Day3, Total;
[Enter]
cout << "Enter the sales for day 1: ";
Sales Figures
cin >> Day1;
The decimal point
cout << "Enter the sales for day 2: "; ------------Day 1:
321 is displayed only
cin >> Day2;
869.26 if there are digits
cout << "Enter the sales for day 3: "; Day 2:
Day 3:
403.77 to the right of it.
cin >> Day3;
Total:
1594.90
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;
45
return 0;
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.
46
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.
47
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;
}
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.
48
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;
}
cin requires that the user enter only
a single. non white space character.
All other input is ignored.
Program Output
Type a character
and press
Enter:
A [Enter]
You entered
A
49
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;
}
cin.get will accept any key, particularly
the return key
Program Output
This program has
paused. Press
Enter to continue.
[Enter]
Thank you!
50
Program 3-31 or 3-23? version 4
#include <iostream.h>
#include <iomanip.h>
cin.get will accept non printable and
white space characters
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
51
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
52
More Mathematical Library Functions
• abs
Absolute Value
• exp
ex
• log
natural log
• log10
base 10 log
• fmod
– modulus for
floating point
• sqrt
square root
• cos
cosine
• sin
sine
• tan
tangent
Concept - The C++ runtime library provides several functions
for performing complex mathematical operations.
53
Table 3-14 or 3-13 version 4
abs
cos
exp
y = abs(x);
Returns the absolute value of the argument. The
argument and the return value are integers.
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.
y = exp(x);
Computes the exponential function of the argument,
which is x. The return type and the argument are
doubles.
54
Table 3-14 continued or 3-13 version 4
fmod
log
log10
y = fmod(x, z);
Returns, as a double, the remainder of the first
argument divided by the second argument.
y = log(x);
Returns the natural logarithm of the argument.
The return type and the argument are doubles.
y = log10(x);
Returns the base-10 logarithm of the argument.
The return type and the argument are doubles.
55
Table 3-14 continued or 3-13 version 4
sin
sqrt
tan
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.
y = sqrt(x);
Returns the square root of the argument. The return type
and argument are doubles.
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.
56
Program 3-32 or 3-24 version 4
#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;
This program uses the sqrt function
to find the hypotenuse of a right
triangle
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
57
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
58
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;
}
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
59
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;
60
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.
61