150 likes | 335 Views
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
E N D
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 Make sure to use the required #includefile • 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)
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 Information provided in the body 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
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 Parameters in the declaration : formal parameters Parameters in the call: actual 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);
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