User Defined Functions Chapter 6
Chapter Topics Standard (Predefined) Functions User-Defined Functions Value-Returning Functions The return Statement Function Prototype Flow of Execution
Top-Down Structured Design with Functions Recall two types of functions Value returning function computes a single value returns value to calling code uses return command Void function (procedure) called as a statement executes some task This chapter focuses on the value returning function
Advantages of Using Functions To help make the program more understandable To modularize the tasks of the program building blocks of the program Write a module once those lines of source code are called multiple times in the program
Advantages of Using Functions While working on one function, you can focus on just that part of the program construct it, debug it, perfect it. 5. Different people can work on different functions simultaneously. 6. If a function is needed in more than one place in a program, or in different programs, you can write it once and use it many times
Standard (Predefined) Functions Part of the C++ language Provided in function libraries Examples: abs(x), sin(x), log(x), pow( x, n) These functions will return a value To be printed cout << sin (x); To be assigned y = pow (3, 4.5); To be used in an expression 3.14 * sqr(r) Make sure to use the required #include file
Predefined Functions View sample program
Value-Returning Functions All the properties together make up the definition of the function Information provided by the heading of the function For the compiler to use a function you have written, it must know when it finds that function call in your source code … 1. The name of the function 2. The number of parameters, if any 3. The data type of each parameter 4. Data type of the value returned by the function 5. The code required to do the calculation Information provided in the body of the function
Value-Returning Functions Consider a function for the area of a circle: double circleArea (double radius) { return 3.14159 * radius * radius; } Note the Heading (type, name, parameters) The body The return statement
Parameters Function definition syntax: functionType functionName (formal parameter list) { statements } Call (invocation of the function) cout << "Enter radius for circle area -> "; cin >> radius; area = circleArea (radius); Parameters in the declaration : formal parameters Parameters in the call: actual parameters
The return Statement A value returning statement must have a return statement Else a warning from the compiler Also the function will actually return a "garbage" value Syntax: return expression; View example
Function Prototype Recall that the compiler must know certain things about your function When it finds a function call in your source code Must know information in heading Your program must have at least the heading of a function before it is invoked Usually listed before function main ( ) View example
Alternative to Prototype Also possible to place whole function definition before main () This is a requirement in some languages (Pascal) Either is acceptable in this class There may be a standard required of programmers within a particular organization View Example
Flow of Control First statement executed in any program is the first statement in the function main( ) When another function called logical control passed to first statement in that function’s body program proceeds through sequence of statements within the function When last statement of function executed control returns to where function was called control given to next command after the call
Flow of Control void main ( ) { . . . print_summary (rpt_total); revenue = rpt_total * .72675; . . . } void print_summary (int total) { . . . cout << . . . } - first statement of main - function call, jumps to first statement of that function - proceeds through function - returns to next statement after call