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
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
4
Program 3-1
#include <iostream>
using namespace std;
void main()
{
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.
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>
using namespace std;
void main()
{
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.
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 once
7
Program 3-3
#include <iostream>
This program accepts multiple
entries on one line
using namespace std;
void main()
{
Program Output
int Length, Width, Area;
This program calculates
cout <<"This program calculates";
the area of a rectangle.
cout <<" the area of a rectangle.\n";
Enter the length and width
cout <<"Enter the length and width"; of the rectangle separated
cout <<" of the rectangle separated"; by a space.
cout <<" by a space. \n";
10 20 [Enter]
cin >> Length >> Width;
The area of the rectangle is
Area = Length * Width;
200
cout <<"The area of the rectangle is ";
cout << Area << endl;
8
}
Program 3-4 or 3-3 version 4
/* This program demonstrates how cin can read
multiple values of different data types. */
#include <iostream>
using namespace std;
void main()
{
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
9
Program 3-5 or 3-4 version 4
// This program demonstrates how
cin can read a string into a
character array. */
#include <iostream>
using namespace std;
void main()
{
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
10
Program 3-6 or 3-5 version 4
// This program reads two strings
// into two character arrays.
#include <iostream>
using namespace std;
void main()
{
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
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.
12
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
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
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*/
using namespace std;
void main()
{
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
15
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
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
left to right
left to right
- (Unary negation)
*
/
+
-
%
Associativity is the order in which an operator works with its
operands
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
18
No Exponents Please
• Include the following file in your program
to deal with exponents:
#include <math>
• 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
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>
#include <math.h>
using namespace std;void main()
{
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
20
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
21
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
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
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
24
Program 3-9 or 3-8 version 4
//This program demonstrates
integer overflow and underflow
#include <iostream>
using namespace std;
void main()
{
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
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>
using namespace std;
void main()
{
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
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
27
Program 3-11 or 3-10 version 4
#include <iostream>
using namespace std;
void main()
{
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.
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.
29
Program 3-12 or 3-11 version 4
/* This program uses a typecast operator to
print a character from a number.*/
#include <iostream>
using namespace std;
void main()
{
int Number = 65;
cout << Number << endl;
cout << char(Number) << endl;
Program Output
65
A
}
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
31
Program 3-13 or 3-12 version 4
#include <iostream>
#include <math.h>
using namespace std;
void main()
{
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
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;
33
Program 3-14 or 3-13 version 4
#include <iostream>
#include <math>
// needed for pow function
#define PI 3.14159
using namespace std;
void main()
{
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);
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
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.
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 easier
36
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.
37
Program 3-17 or 3-15 version 4
//This program displays three rows of numbers
#include<iostream.h>
using namespace std;
void main()
{
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
38
Program 3-18 or 3-16 version 4
/*This program displays three rows of
numbers. */
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
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 << " ";
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 << 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
34
390
5
7
3456
837
1623
12
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>
#include <iomanip>
using namespace std;
void main()
{
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)
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.
41
Program 3-20 or 3-18 version 4
/* This program demonstrates how
setprecision rounds floating point value. */
#include <iostream>
#include <iomanip>
setprecision does not truncate
using namespace std;
numbers it rounds them up
void main()
{
float Quotient, Number1 = 132.364,
Program Output
Number2 = 26.91;
4.91877
Quotient = Number1 / Number2;
4.9188
cout << Quotient << endl;
4.919
cout << setprecision(5) << Quotient << endl;
4.92
cout << setprecision(4) << Quotient << endl;
4.9
cout << setprecision(3) << Quotient << endl;
5
cout << setprecision(2) << Quotient << endl;
cout << setprecision(1) << Quotient << endl;
}
42
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
43
Program for Table 3.11
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
cout << " Number\t\tManipulator\t\tValue Displayed\n";
cout <<"28.92786\t setprecision(3)\t"<< setprecision(3) << 28.92786 << endl;
cout <<"21.\t\t setprecision(5)\t"<< setprecision(5) << 21. << endl;
cout <<"109.5\t\t setprecision(4)\t"<< setprecision(4) << 109.5 << endl;
cout <<"34.28596\t setprecision(2)\t"<< setprecision(2) << 34.28596 << endl;
cout <<"34.28596\t setprecision(1)\t"<< setprecision(1) << 34.28596 << endl;
cout
cout
cout
cout
cout
cout
}
<< fixed;
<< “fixed\n";
<<"28.92786\t setprecision(3)\t"<< setprecision(3) << 28.92786 << endl;
<<"21.\t\t setprecision(5)\t"<< setprecision(5) << 21. << endl;
<<"109.5\t\t setprecision(4)\t"<< setprecision(4) << 109.5 << endl;
<<"34.28596\t setprecision(2)\t"<< setprecision(2) << 34.28596 << endl;
44
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>
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;
using namespace std;
void 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;
}
45
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
46
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]
void 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) <<
setiosflags(ios::fixed);
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;
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.
48
Program 3-28 or 3-22 version 4
// This program demonstrates cin's
// getline member function.
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
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.
49
Program 3-29 or 3-23 version 4
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
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
50
Program 3-30 or 3-23 version 4
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
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!
51
Program 3-31 or 3-23? version 4
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
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
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
53
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.
54
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.
55
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.
56
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.
57
Program 3-32 or 3-24 version 4
#include <iostream>
#include <math>
using namespace std;
void main()
{
float A, B, C;
// For sqrt
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 <<
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
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
59
Program 3-33 or 3-25 version 4
// This program demonstrates random
//numbers.
#include <iostream>
#include <stdlib>
using namespace std;
void main()
{
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
60
Basic File I/O
• The file fstream contains all the declarations
necessary for file operations
#include <fstream>
• 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;
61
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.
62