1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell...
-
Upload
garey-hopkins -
Category
Documents
-
view
236 -
download
0
Transcript of 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell...
![Page 1: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/1.jpg)
1
Chapter 3
Numeric Types, Expressions,
and Output
CS185/09 - Introduction to Programming
Caldwell College
![Page 2: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/2.jpg)
2
Chapter 3 Topics• Constants of Type int
and float• Evaluating Arithmetic
Expressions• Implicit Type Coercion
and Explicit Type Conversion
• Calling a Value-Returning Function
• Using Function Arguments
• Using C++ Library Functions in Expressions
• Calling a Void Function• C++ Manipulators to
Format Output• String Operations length, find, substr
![Page 3: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/3.jpg)
3
structured
array struct union class
address
pointer reference
simple
integral enum
char short int long bool
floating
float double long double
C++ Data Types
![Page 4: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/4.jpg)
4
simple types
integral floating
char short int long bool enum float double long double
unsigned
C++ Simple Data Types
![Page 5: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/5.jpg)
5
Standard Data Types in C++
• Integral Types• represent whole numbers
and their negatives• declared as int, short, or
long
• Floating Types• represent real numbers with
a decimal point• declared as float, or double
• Character Type• represents single characters• declared as char
![Page 6: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/6.jpg)
6
Samples of C++ Data Values
• int sample values• 4578• -4578• 0
• float sample values• 95.274• 95.• 95.0• .265
• char sample values• ‘B’• ‘d’• ‘4’• ‘?’• ‘*’
![Page 7: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/7.jpg)
7
Scientific Notation 2.7E4 means 2.7 x 10 4 =
2.7000 =
27000.0
2.7E-4 means 2.7 x 10 - 4 =
0002.7 =
0.00027
![Page 8: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/8.jpg)
8
More About Floating Point
Values
• Floating point numbers have an integer part and a fractional part, with a decimal point in between. Either the integer part or the fractional part, but not both, may be missing• EXAMPLES
• 18.4
• 500.
• .8
• -127.358
![Page 9: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/9.jpg)
9
More About Floating Point
Values
• Alternatively, floating point values can have an exponent, as in scientific notation• The number preceding the letter E doesn’t need
to include a decimal point• EXAMPLES
• 1.84E1• 5E2• 8E-1• -.127358E3
![Page 10: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/10.jpg)
10
Division Operator
• The result of the division operator depends on the type of its operands
• If one or both operands has a floating point type, the result is a floating point type. Otherwise, the result is an integer type• Examples
• 11/ 4 has a value of 2• 11.0 / 4.0 has a value of 2.75• 11 / 4.0 has a value of 2.75
![Page 11: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/11.jpg)
11
//***************************************************************************// FreezeBoil program// This program computes the midpoint between// the freezing and boiling points of water//***************************************************************************#include < iostream >
using namespace std;
const float FREEZE_PT = 32.0; // Freezing point of waterconst float BOIL_PT = 212.0; // Boiling point of water
int main ( ){ float avgTemp; // Holds the result of averaging
Main returns an int value to
the operating system
![Page 12: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/12.jpg)
12
cout << “Water freezes at “ << FREEZE_PT << endl; cout << “ and boils at “ << BOIL_PT << “ degrees.” << endl;
avgTemp = FREEZE_PT + BOIL_PT; avgTemp = avgTemp / 2.0;
cout << “Halfway between is “; cout << avgTemp << “ degrees.” << endl;
return 0;}
Function main Continued
![Page 13: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/13.jpg)
13
)4 11
R = ?
Modulus Operator
• The modulus operator % can only be used with integer type operands and always has an integer type result
• Its result is the integer type remainder of an integer division • EXAMPLE 11 % 4 has value 3 because
![Page 14: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/14.jpg)
14
8
int age;
age = 8;
age = age + 1;
age
9
age
More C++ Operators
![Page 15: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/15.jpg)
15
8
int age;
age = 8;
++age;
age
9
age
PREFIX FORM
Increment Operator
![Page 16: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/16.jpg)
16
8
int age;
age = 8;
age++;
age
9
age
POSTFIX FORM
Increment Operator
![Page 17: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/17.jpg)
17
100
int dogs;
dogs = 100;
dogs--;
dogs
99
dogs
Decrement Operator
![Page 18: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/18.jpg)
18
Postfix vs. Prefix
• When used as a unary operator, the end result is the same• int num = 0;
num++;• int num = 0;
++num;
• Both will end up with “1” in mun
![Page 19: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/19.jpg)
19
Postfix vs. Prefix
• When used in a binary operation, prefix occurs before assignment
• When used in a binary operation, postfix occurs after the assignment
![Page 20: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/20.jpg)
20
Postfix vs. Prefix• int num = 1;
int num2 = 0;
num2 = ++num;cout << "Prefix result is " << num2 << endl;
num = 1;num2 = num++;cout << "Postfix result is " << num2 << endl;
• Will print:• Prefix result is 2
Postfix result is 1
![Page 21: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/21.jpg)
21
What is an Expression in C++?
• An expression is a valid arrangement of variables, constants, and operators
• In C++ each expression can be evaluated to compute a value of a given type
• The value of the expression9.3 * 4.5 is 41.85
![Page 22: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/22.jpg)
22
Operators can be
• Binary - involving 2 operands 2 + 3• Unary - involving 1 operand -3• Ternary - involving 3 operands (explained later)
![Page 23: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/23.jpg)
23
Some C++ OperatorsPrecedence Operator Description Higher ( ) Parenthesis
+ Positive
- Negative
* Multiplication
/ Division
% Modulus (remainder)
+ Addition
- Subtraction
Lower = Assignment
![Page 24: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/24.jpg)
24
Precedence
• Higher Precedence determines which operator is applied first in an expression having several operators
![Page 25: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/25.jpg)
25
Associativity
• Left to right associativity means that in an expression having 2 operators with the same priority, the left operator is applied first
• In C++ the binary operators *, /, %, + and - are all left associative • Expression 9 - 5 - 1 means ( 9 - 5 ) - 1• Which is 4 - 1• With a final result of 3
![Page 26: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/26.jpg)
26
Evaluate the Expression• 7 * 10 - 5 % 3 * 4 + 9
• means (7 * 10) - 5 % 3 * 4 + 9
• 70 - 5 % 3 * 4 + 9
• 70 - (5 % 3) * 4 + 9
• 70 - 2 * 4 + 9
• 70 - ( 2 * 4 ) + 9
• 70 - 8 + 9
• ( 70 - 8 ) + 9
• 62 + 9
• 71
![Page 27: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/27.jpg)
27
Parentheses
• Parentheses can be used to change the usual order• Parts in ( ) are evaluated first
• Evaluate (7 * (10 - 5) % 3) * 4 + 9• ( 7 * 5 % 3 ) * 4 + 9• ( 35 % 3 ) * 4 + 9• 2 * 4 + 9• 8 + 9• 17
![Page 28: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/28.jpg)
28
/* This program computes miles per gallon given four amounts for gallons used, and starting and ending mileage. Constants: The gallon amounts for four fillups. The starting mileage.
The ending mileage.
Output (screen) The calculated miles per gallon.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
#include <iostream>
using namespace std;
Mileage Program
![Page 29: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/29.jpg)
29
C++ Code Continuedconst float AMT1 = 11.7; // Number of gallons for fillup 1const float AMT2 = 14.3; // Number of gallons for fillup 2 const float AMT3 = 12.2; // Number of gallons for fillup 3 const float AMT4 = 8.5; // Number of gallons for fillup 4
const float START_MILES = 67308.0; // Starting mileageconst float END_MILES = 68750.5; // Ending mileage
int main( ){
float mpg; // Computed miles per gallon
mpg = (END_MILES - START_MILES) / (AMT1 + AMT2 + AMT3 + AMT4);
![Page 30: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/30.jpg)
30
cout << “For the gallon amounts “ << endl;cout << AMT1 << ‘ ‘ << AMT2 << ‘ ‘ << AMT3 << ‘ ‘ << AMT4 << endl;
cout << “and a starting mileage of “ << START_MILES << endl;cout << “and an ending mileage of “ << END_MILES << endl;cout << “the mileage per gallon is “ << mpg << endl;
return 0;}
Main returns an int value to
the operating system
![Page 31: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/31.jpg)
31
Assignment Operator Syntax
• Variable = Expression• First, Expression on right is evaluated• Then the resulting value is stored in the
memory location of Variable on left • NOTE: An automatic type coercion occurs
after evaluation but before the value is stored if the types differ for Expression and Variable
![Page 32: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/32.jpg)
32
What value is stored?
float a;
float b;
a = 8.5;
b = 9.37;
a = b;
a
b
a
b
8.5
9.37
?
?
![Page 33: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/33.jpg)
33
? float someFloat;
someFloat
someFloat = 12; // causes implicit type conversion
someFloat
12.0
What is stored?
![Page 34: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/34.jpg)
34
? int someInt;
someInt
someInt = 4.8; // causes implicit type conversion
someInt
4
What is stored?
![Page 35: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/35.jpg)
35
Type Casting is Explicit
Conversion of Type
• int(4.8) has value 4• float(5) has value 5.0• float(7/4) has value 1.0• float(7) / float(4) has value 1.75
![Page 36: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/36.jpg)
36
Some Expressionsint age;
EXAMPLE
age = 8
- age
5 + 8
5 / 8
6.0 / 5.0
float ( 4 / 8 )
float ( 4 ) / 8
VALUE
8
- 8
13
0
1.2
0.0
0.5
![Page 37: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/37.jpg)
37
Functions
• Every C program must have a function called main
• Program execution always begins with main function
• Any other functions are subprograms and must be called from within the program
![Page 38: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/38.jpg)
38
Function Calls
• One function calls another by using the name of the called function together with ( ) containing an argument list
• A function call temporarily transfers control from the calling function to the called function
![Page 39: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/39.jpg)
39
What is in a block?
{
0 or more statements here
}
![Page 40: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/40.jpg)
40
Every C++ function has 2 parts
int main (void) heading{
body block return 0;
}
![Page 41: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/41.jpg)
41
Shortest C++ Program
int main (void)
{
return 0;
}
type of returned value name of function
![Page 42: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/42.jpg)
42
What is in a heading?
int main ( void )
type of returned valuename of function
says no parameters
![Page 43: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/43.jpg)
43
More About Functions
• It is not considered good practice for the body block of function main to be long
• Function calls are used to do tasks• Every C++ function has a return type or
“void”• If the return type is not void, the function
returns a value to the calling block
![Page 44: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/44.jpg)
44
Where are functions?
• Located in libraries• Written by programmers and embedded
directly in the program• Properly written functions allow for code re-
use
![Page 45: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/45.jpg)
45
HEADER FILE FUNCTION EXAMPLE VALUE
OF CALL
fabs(x) fabs(-6.4) 6.4
<cmath> pow(x,y) pow(2.0,3.0) 8.0
<cmath> sqrt(x) sqrt(100.0) 10.0
<iomanip> setprecision(n) setprecision(3)
<cmath> log(x) log(2.0) .693147
sqrt(x) sqrt(2.0) 1.41421
<cstdlib> abs(i) abs(-6) 6
![Page 46: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/46.jpg)
46
Write C++ Expressions for
The square root of b2 - 4ac
sqrt ( b * b - 4.0 * a * c )
The square root of the average of myAge and yourAge
sqrt ( ( myAge + yourAge ) / 2 )
![Page 47: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/47.jpg)
47
main function
Square function
Cube function
Program with Several
Functions
![Page 48: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/48.jpg)
48
#include <iostream>
int Square( int ); // declares these functionsint Cube( int );
using namespace std;
int main( ){ cout << “The square of 27 is “
<< Square(27) << endl; // function call
cout << “The cube of 27 is “ << Cube(27) << endl; // function call
return 0;}
Program with Three Functions
![Page 49: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/49.jpg)
49
int Square( int n ) // header and body here{ return n * n;}
int Cube( int n ) // header and body here{ return n * n * n;}
Program with Three Functions
![Page 50: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/50.jpg)
50
Function Call
• A function call temporarily transfers control to the called function’s code
• When the function’s code has finished executing, control is transferred back to the calling block to the statement immediately after the function call
![Page 51: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/51.jpg)
51
FunctionName ( Argument List )
Function Call Syntax
• The argument list is a way for functions to communicate with each other by passing information
• The argument list can contain 0, 1, or more arguments, separated by commas, depending on the function
![Page 52: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/52.jpg)
52
A void function call stands
alone• #include <iostream>
void DisplayMessage ( int n ); // function prototypeint main( ){ DisplayMessage( 15 ); //function call cout << “Good Bye“ << endl; return 0;}void DisplayMessage ( int n ) { cout << “I have liked math for “ << n << “ years” << endl;}
![Page 53: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/53.jpg)
Scott Marino - Caldwell College
Two Kinds of Functions
Always returns a single value to its caller and is called from within an expression.
Never returns a value to its caller, and is called as a separate statement.
Value-Returning Void
53
![Page 54: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/54.jpg)
54
<< is a binary operator<< is called the output or insertion operator
<< is left associative
EXPRESSION HAS VALUE
cout << age cout
STATEMENT
cout << “You are “ << age << “ years old\n”;
![Page 55: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/55.jpg)
55
<iostream> is header file
• for a library that defines 3 objects• an istream object named cin (keyboard)• an ostream object named cout (screen)• an ostream object named cerr (screen)
![Page 56: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/56.jpg)
56
Keyboard ScreenExecuting Program
istream ostream
No I/O is built into C++
• Instead, a library provides input stream and output stream
![Page 57: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/57.jpg)
57
I/O Manipulators
• Manipulators are used only in input and output statements
• endl, fixed, showpoint, setw, and setprecision are manipulators that can be used to control output format
• endl is use to terminate the current output line, and create blank lines in output• Simply put - endl is a carriage return
![Page 58: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/58.jpg)
58
Insertion Operator ( << )
• The insertion operator << takes 2 operands • The left operand is a stream expression,
such as cout or a file handle• The right operand is an expression of simple
type, a string, or a manipulator
![Page 59: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/59.jpg)
59
Output Statements
SYNTAX (revised)
cout << ExpressionOrManipulator
<< ExpressionOrManipulator . . .;
![Page 60: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/60.jpg)
60
Output StatementsSYNTAX
These examples yield the same output.
cout << “The answer is “;
cout << 3 * 4;
cout << “The answer is “ << 3 * 4;
cout << Expression << Expression . . .;
![Page 61: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/61.jpg)
61
Using Manipulators
Fixed and Showpoint
• Use the following statement to specify that (for output sent to the cout stream) decimal format (not scientific notation) be used, and that a decimal point be included (even for floating values with 0 as fractional part)
• cout << fixed << showpoint;
![Page 62: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/62.jpg)
62
setprecision(n)
• Requires #include <iomanip> and appears in an expression using insertion operator (<<)
• If fixed has already been specified, argument n determines the number of places displayed after the decimal point for floating point values
• Remains in effect until explicitly changed by another call to setprecision
![Page 63: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/63.jpg)
63
#include <iomanip> // for setw( ) and setprecision( )#include <iostream>
using namespace std;
int main (void){ float myNumber = 123.4587;
cout << fixed << showpoint; // use decimal format // print decimal points
cout << “Number is ” << setprecision(3) << myNumber << endl;
return 0;}
What is exact output?
![Page 64: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/64.jpg)
64
Output
• The output would be:• Number is 123.459
• The value is rounded if necessary to be displayed with exactly 3 places after the decimal point
![Page 65: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/65.jpg)
65
Manipulator setw
• “set width” lets us control how many character positions the next data item should occupy when it is output
• setw is only for formatting numbers and strings
• Not used for char type data as a char is only 1 space
![Page 66: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/66.jpg)
66
setw(n)
• Requires #include <iomanip> and appears in an expression using insertion operator (<<)
• Argument n is called the field width specification, and determines the number of character positions in which to display a right-justified number or string (not char data). The number of positions used is expanded if n is too narrow
• “set width” affects only the very next item displayed, and is useful to align columns of output
![Page 67: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/67.jpg)
67
#include <iomanip> // for setw( )#include <iostream>#include <string>
using namespace std;
int main (void){ int myNumber = 123; int yourNumber = 5;
cout << setw(10) << “Mine” << setw(10) << “Yours” << endl; << setw(10) << myNumber<< setw(10) << yourNumber << endl;
return 0;}
What is exact output?
![Page 68: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/68.jpg)
68
OutputPosition 012345678901234567890 Mine Yours 123 5
each is displayed right-justified andeach is located in a total of 10 positions
![Page 69: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/69.jpg)
69
#include <iomanip> // for setw( ) and setprecision( )#include <iostream>
using namespace std;
int main (void){ float myNumber = 123.4; float yourNumber = 3.14159;
cout << fixed << showpoint; // use decimal format // print decimal points
cout << “Numbers are: ” << setprecision(4) << endl << setw(10) << myNumber << endl
<< setw(10) << yourNumber << endl;
return 0;}
What is exact output?
![Page 70: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/70.jpg)
70
Output
12345678901234567890Numbers are: 123.4000 3.1416
each is displayed right-justified and rounded if necessary and each is located in a total of 10 positions with 4 places after the decimal point
![Page 71: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/71.jpg)
71
HEADER MANIPULATOR ARGUMENT EFFECT
FILE TYPE
<iostream> showpoint none displays decimal point
<iostream> fixed none suppresses scientific notation
<iomanip> setprecision(n) int sets precision to n digits
<iomanip> setw(n) int sets field width to n positions
<iostream> endl none terminates output line
![Page 72: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/72.jpg)
72
String “length” function
• Function length returns an unsigned integer value that equals the number of characters currently in the string
• Function size returns the same value as function length
• You must use dot notation in the call to function length or size
![Page 73: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/73.jpg)
73
find Function
• Function find returns an unsigned integer value that is the beginning position for the first occurrence of a particular substring within the string
• The substring argument can be a string constant, a string expression, or a char value
• If the substring was not found, function find returns the special value string::npos
![Page 74: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/74.jpg)
74
substr Function
• Function substr returns a particular substring of a string
• The first argument is an unsigned integer that specifies a starting position within the string
• The second argument is an unsigned integer that specifies the length of the desired substring
• Positions of characters within a string are numbered starting from 0, not from 1
![Page 75: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/75.jpg)
75
#include <iostream>#include <string> // for functions length, find, substr
using namespace std;
int main (void){ string stateName = “Mississippi”; cout << stateName.length( ) << endl; cout << stateName.find(“is”) << endl; cout << stateName.substr( 0, 4 ) << endl; cout << stateName.substr( 4, 2 ) << endl; cout << stateName.substr( 9, 5 ) << endl;
return 0;}
What is exact output?
![Page 76: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/76.jpg)
76
#include <iostream>#include <string> // for functions length, find, substr
using namespace std;
int main (void){ string stateName = “Mississippi”; cout << stateName.length() << endl; // value 11 cout << stateName.find(“is”) << endl; // value 1 cout << stateName.substr(0,4) << endl; // value “Miss” cout << stateName.substr(4,2) << endl; // value “is” cout << stateName.substr(9,5) << endl; // value “pi”
return 0;}
What is exact output?
![Page 77: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/77.jpg)
77
Map Measurement Case Study
• You want a program to determine walking distances between 4 sights in the city. Your city map legend says one inch on the map equals 1/4 mile in the city. You use the measured distances between 4 sights on the map
• Display the walking distances (rounded to the nearest tenth) between each of the 4 sights
![Page 78: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/78.jpg)
78
// *************************************************** // Walk program// This program computes the mileage (rounded to nearest// tenth of mile) for each of 4 distances, given map// measurements on map with scale of 1 in = 0.25 mile// ***************************************************
#include <iostream> // for cout, endl#include <iomanip> // For setprecision
using namespace std;
float RoundToNearestTenth( float ); // declare function
const float SCALE = 0.25; // Map scale (mi. per inch)
C++ Program
![Page 79: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/79.jpg)
79
const float DISTANCE1 = 1.5; // First map distanceconst float DISTANCE2 = 2.3; // Second map distanceconst float DISTANCE3 = 5.9; // Third map distanceconst float DISTANCE4 = 4.0; // Fourth map distance
int main( ){ float totMiles; // Total of rounded miles float miles; // One rounded mileage
cout << fixed << showpoint // Set output format << setprecision(1);
totMiles = 0.0; // Initialize total miles
C++ Program
![Page 80: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/80.jpg)
80
// Compute miles for each distance on map
miles = RoundToNearestTenth( DISTANCE1 * SCALE );
cout << DISTANCE1 << “ inches on map is “ << miles << “ miles in city.” << endl;
totMiles = totMiles + miles;
miles = RoundToNearestTenth( DISTANCE2 * SCALE );
cout << DISTANCE2 << “ inches on map is “ << miles << “ miles in city.” << endl;
totMiles = totMiles + miles;
C++ Program
![Page 81: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/81.jpg)
81
// Compute miles for other distances on map
miles = RoundToNearestTenth( DISTANCE3 * SCALE );
cout << DISTANCE3 << “ inches on map is “ << miles << “ miles in city.” << endl;
totMiles = totMiles + miles;
miles = RoundToNearestTenth( DISTANCE4 * SCALE );
cout << DISTANCE4 << “ inches on map is “ << miles << “ miles in city.” << endl;
totMiles = totMiles + miles;
C++ Program
![Page 82: 1 Chapter 3 Numeric Types, Expressions, and Output CS185/09 - Introduction to Programming Caldwell College.](https://reader035.fdocuments.net/reader035/viewer/2022062407/56649e915503460f94b97227/html5/thumbnails/82.jpg)
82
cout << endl << “Total walking mileage is “ << totMiles << “ miles.” << endl;
return 0; // Successful completion}
// ***************************************************
float RoundToNearestTenth ( /* in */ float floatValue)
// Function returns floatValue rounded to nearest tenth.
{ return float(int(floatValue * 10.0 + 0.5)) / 10.0;}
C++ Program