Functions Presentation

Download Report

Transcript Functions Presentation

USING & CREATING FUNCTIONS
MODULAR PROGRAMMING
Why Modular Programming?
Improves Readability & Understandability
Improve Maintainability
Allows For Re-Usability
Within Program
From Program To Program
Top-Down Approach
Break Task Down Into Smaller & Smaller Processes
Stop When A Process Will Not Break Down Further
Write Functions For Lowest Level Processes
PREDEFINED FUNCTIONS
Similar To Calculator Functions
Input Value (Parameter)
Press Function Key (Call Function)
Read Result (Use Function Output)
Functions Organized In Libraries
# include <cmath>
Appendix F Shows Various Libraries And Functions
PREDEFINED FUNCTIONS
Example math (cmath) functions
 ceil(x) - returns the smallest whole number value that is not less
than x
 abs(x) - returns the absolute value of integer x
 exp(x) - returns the natural logarithm of x
 floor(x) - returns the largest whole number value that is not
greater than x
 sin(x) - returns the sine of x
 sqrt(x) - returns the square root of x
 cos(x) - returns the cosine of x.
Note:
In all of the above cmath functions, the input paramter,
x, is defined as a floating point value.
PREDEFINED FUNCTIONS
Example character (cctype) functions
 isalnum(ch) - returns true if the char is an ASCII alphabetic or
digit character ('a' - 'z', 'A' - 'Z', or '0' - '9')
 char(int) - returns the ASCII character associated with the given
number
 isdigit(ch) - returns true if the char is an ASCII digit ('0' - '9')
 isspace(ch) - returns true if the char is a whitespace character
(blank, newline, tab, return)
 tolower(ch) - returns the lowercase ASCII equivalent of the given
char if it is an uppercase character. Otherwise returns the given
char unchanged.
 toupper(ch) - returns the uppercase ASCII equivalent of the given
char if it is a lowercase character. Otherwise returns the given
char unchanged.
PREDEFINED FUNCTIONS
Four Ways To Use Functions
Direct Output
cout << “The value “ << x << “ raised to the power of “ << y;
cout << “ is “ << pow(x,y) << endl;
Assignment Statement
temp = pow(x,y);
z = z + pow(x,y);
Function Call Parameter
temp = pow(x,pow(y,z));
Relational Expression
if (pow(x,y) > 15)
USER DEFINED FUNCTIONS
Three Categories
Void Function Without Parameters
Void Function With Parameters
Value-Returning Function (with or without parameters)
Void Function
May or May Not Have Parameters
Does Not Return A Value (unless reference parameters are used)
Value-Returning Function
Typically Has Parameters
Parameters Declared In Function Header
Returns Single Value Of Function Return Type
USER DEFINED FUNCTIONS
Void Function Without Parameters
functionType functionName()
{
// Function May Have Local Constants
// Function May Have Local Variables
statement(s);
}
Void Function Call
functionName();
USER DEFINED FUNCTIONS
Void Function With Parameters
void functionName(formal parameter list)
{
// Function May Have Local Constants
// Function May Have Local Variables
statement(s)
}
Void Function Call
functionName(actual parameter list)
USER DEFINED FUNCTIONS
Void Function With Parameters (cont.)
Formal Parameter List (in function header)
(datatype variable, datatype variable)
Actual Parameter List (in function call)
(expression or variable, expression or variable)
USER DEFINED FUNCTIONS
Value Returning Function
return type functionName(formal parameter list)
{
// Function May Have Local Constants
// Function May Have Local Variables
statement(s)
return variable;
}
Function Call
functionName(actual parameter list);
USER DEFINED FUNCTIONS
Value Returning Function (cont.)
Formal Parameter List (in function header)
(datatype variable, datatype variable)
Actual Parameter List (in function call)
(expression or variable, expression or variable)
Return Statement
Used To Pass Value Back To Function Call
USER DEFINED FUNCTIONS
Where Are They Located In Program?
Can Be Listed Before Or After main()
Most Programmers List After main()
If Listed Before main() Creates Issues
Function Prototypes Eliminates Issues
Function Prototypes Listed Prior To main()
functionType functionName(parameter list);
Parameter List Variable Names Are Optional
double larger(double x, double y);
or
double larger(double, double);