EEE 0115 Chapter 5 C Functions 1 C

  • Slides: 17
Download presentation
EEE 0115 Chapter 5: C Functions 1 C How to Program Deitel & Deitel

EEE 0115 Chapter 5: C Functions 1 C How to Program Deitel & Deitel

2 Outline Program Modules in C Math Library Functions Function Definitions Function Prototypes Calling

2 Outline Program Modules in C Math Library Functions Function Definitions Function Prototypes Calling Functions: Call by Value and Call by Reference Random Number Generation Recursion

3 Program Modules in C C programs can call user-defined functions and built in

3 Program Modules in C C programs can call user-defined functions and built in library functions. A function is called by function name and argument Function performs operations and returns results Functions can be considered as modules in C

4 Math Library Functions Used to perform math computations To be able to use

4 Math Library Functions Used to perform math computations To be able to use math library functions, C proprams should include <math. h> (#include <math. h>) Example: printf("%. 2 f", pow( 5, 2 ) ); All math functions return double data Arguments may be constants, variables, or expressions.

5 Functions inherently modularize programs The variables defined in function definition are called local

5 Functions inherently modularize programs The variables defined in function definition are called local variables and they are only be accessed in function. Function parameters are also local variables. They are used to communicate between functions and they are also local variables.

6 Functions Advantages of Functions Manageable program development Software reusability Avoid code repetition

6 Functions Advantages of Functions Manageable program development Software reusability Avoid code repetition

7 Function Definitions Function definition format return-value-type function-name(parameter-list) { declarations and statements } void

7 Function Definitions Function definition format return-value-type function-name(parameter-list) { declarations and statements } void as a return type indicates that function returns nothing Parameters given as a comma seperated list. Functions can not be defined inside other functions. If the function returns nothing, only return; or nothing is provided.

8 Function Definitions

8 Function Definitions

9 Function Prototypes Function prototype includes: Function name Parameters Return type Prototypes are needed

9 Function Prototypes Function prototype includes: Function name Parameters Return type Prototypes are needed if the function definition is provided after main program. Example: int maximum(int x, int y, int z), The maximum function takes 3 integers and returns integer value as a result.

10 Calling Functions: Call by Value and Call by Reference Call by value A

10 Calling Functions: Call by Value and Call by Reference Call by value A copy of the argument is created and passed to function. Modifications performed in function do not effect the original value. Call by reference Original argument passed to function Modifications in function effect the original value.

11 Random Number Generation rand function is defined in <stdlib. h> rand returns a

11 Random Number Generation rand function is defined in <stdlib. h> rand returns a random number between 0 and RAND_MAX To produce a random number between 1 and n 1 + (rand() % n) expression can be used. rand() % n returns a number between 0 and n-1

12 Random Number Generation srand function is defined in <stdlib. h> It takes an

12 Random Number Generation srand function is defined in <stdlib. h> It takes an integer seed and jumps to that location in its random sequence srand(seed) srand(time(NULL)); time(NULL) returns the number of seconds since January 1, 1970 and therefore randomizes the seed.

13 Random Number Generation

13 Random Number Generation

14 Random Number Generation

14 Random Number Generation

15 Recursion Recursive functions call themselves. A base case need to be provided. Example:

15 Recursion Recursive functions call themselves. A base case need to be provided. Example: 5! = 5 * 4 * 3 * 2 *1 5! = 5 * 4! 4! = 4 * 3!. . . Base case (1! = 0! = 1)

16 Recursion

16 Recursion

17 Recursion

17 Recursion