2. What is function? A function is a section of a program that performs a specific task . Solving a problem using different functions makes programming much simpler with fewer defects . It’s a solution for a big project that split into small sub project.
3. Overview Same book published in several volumes. Easily manageable Huge Book of 3000 pages
4. Advantages of Functions Problem can be viewed in a smaller scope Program development are much faster compared to the common structure Program becomes easier to maintain
5.
6.
7. More about Function.. Functions are used to perform a specific task on a set of values Values can be passed to functions so that the function performs the task on these values Values passed to the function are called arguments After the function performs the task, it can send back the results to the calling function. The value sent back by the function is called return value A function can return back only one valueto the calling function
8. Writing User-Defined Functions intfnAdd(int iNumber1, int iNumber2) { /* Variable declaration*/ intiSum; /* Find the sum */ iSum = iNumber1 + iNumber2; /* Return the result */ return (iSum); } Return data type Arguments (Parameters) Function header Function Body Can also be written as return isum;
10. Example: Writing User-Defined Functions Example2 intfnAdd(int iNumber1, int iNumber2) { /* Return the result */Can also be written as return (iNumber1 + iNumber2); } ======================================================= Example3 /* Function to display “UTHM.” */ void fnCompanyNameDisplay() { printf(“UTHM.”); }
14. Function Terminologies Function Prototype void fnDisplay() ; int main(int argc, char **argv) { fnDisplay(); return 0; } void fnDisplay() { printf(“Hello World”); } Calling Function Function Call Statement Function Definition Called Function
15.
16. The variables or constants that are passed in the function call are called as actualparameters
17.
18. Types of Function in C Language Function Definition Function Calls Function Prototypes
19. Element Of Functions Function definitions The first line A function type A function name An optional list of formal parameters enclosed in parenthesis Eg: function_type function_name(formal parameters) The body of the function The function body is the expression of the algorithm for the module in C. The function body consist of variable declarations and statements
20. Example of Function Definition void print_menu(void) /* example of function definition. The first line specifies the type of the function as void. This type of function will not return a value under its name. If a function is designed such that it does not return any value under its name, its type must be Void.*/ { printf(“THIS PROGRAM DRAWS A RECTANGLE OR A TRIANGLE ON THE”); printf(“SCREEN.”); printf(“Enter 1 to draw a rectangle.”); printf(“Enter 2 to draw a triangle.”); } /*end function print_menu*/
21. Function Calls A function call requires the name of the function followed by a list of actual parameters (or arguments), if any enclosed in parentheses. If a function has no formal parameters in its definition, it cannot have any actual parameters in calls to it. In this case, in a function call, the name of the function must be followed by the function call operator, (). To indicate that it has no parameters Eg1 : Function that has no parameters polynomial ()
22. The actual parameters may be expressed as constants, single variables or more complex expressions. Eg2: Function that return value to y y=polynomial(x); Eg3: Function that does not returns anything polynomial (a,b,c)
23. Example Function that Return Value /* determine the largest of three integer quantities*/ #include <stdio.h> #include <conio.h> int maximum (intx,int y) { int z; z=(x>=y)? x :y ; return(z); } main() { inta,b,c,d; /* read the integer quantities*/ printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b); printf("c = "); scanf("%d",&c); /*calculate and display the maximum value*/ d=maximum(a,b); printf("maximum =%d",maximum(c,d)); getch(); }
24. Function Prototypes In general, all function in C must be declared But function main, must not be declared. Function prototype consist of A function type A function name A list of function parameters, the list of function parameter types is written as (void) or (). If the function has more than one formal parameter, the parameter types in the list must be saparated by commas. Eg format: function_typefunction_name(parameters);
25. Example of Function Prototype Format: function_typefunction_name(parameters); Example: void print_menu(void); double squared (double number); intget_menu_choice(void);
26. Function prototype can be placed in the source file outside function definition and in a function definition.
27. Outside Function Definition Example of outside function definition:Global prototype If a function prototype is global, any function in the program may use it because of this flexibility. Global prototype will be place after the processor directives and before the definition or function main.
28. Inside Function Definition Example of inside function definition: Local prototype The variables that are declared inside a function are called as local variables Their scope is only within the function in which they are declared These variables cannot be accessed outside the function Local variables exist only till the function terminates its execution The initial values of local variables are garbage values
30. Passing Arguments to a Function List them in parentheses following the function name. The number of arguments and the type of each arguments must match the parameter in the function header and prototype. Example if a function is defined to take two type intarguments, you must pass it exactly two intarguments.
31. Each argument cab be any valid C expression such as: A constant A variable A mathematical or logical expression or event another function( one with a return value)
32.
33. The following is an equivalent piece of code: a= half(y); b=square(a); c= third(b); x= half(c);
34. Recursion The term recursion refers to a situation in which a function calls itself either directly or indirectly. Indirectly recursion: Occurs when one functions and they can be useful in some situations. This type of recursion can be used to calculated the factorial of a number and others situation.
35. /*Demonstrates function recursion. Calculate the factorial of a number*/ #include <stdio.h> unsigned intf,x; unsigned int factorial(unsigned int a); main() { puts ("Enter an integer value between 1 and 8:"); scanf("%d",&x); if(x>8||x<1) { printf("Only values from 1 to 8 are acceptable!");} else{ f=factorial(x); printf("%u factorial equals %u",x,f);} return 0; } unsigned int factorial (unsigned int a){ if (a==1) return 1; else{ a *=factorial(a-1); return a; } }
37. Example – Finding the sum of two numbers using functions ( No parameter passing and no return) #include <stdio.h> #include <conio.h> void fnSum(); int main( intargc, char **argv ) { fnSum(); getch(); return 0; } void fnSum() { int iNum1,iNum2,iSum; printf("Enter the two numbers:"); scanf("%d%d",&iNum1,&iNum2); iSum = iNum1 + iNum2; printf("The sum is %d",iSum); }
38. Example – Finding the sum of two numbers using functions ( parameter passing ) #include <stdio.h> #include <conio.h> void fnSum( int iNumber1, int iNumber2); int main( intargc, char **argv ) { int iNumber1,iNumber2; printf("Enter the two numbers:"); scanf("%d%d",&iNumber1,&iNumber2); fnSum(iNumber1,iNumber2); getch(); return 0; } void fnSum(int iNum1,int iNum2){ intiSum; iSum=iNum1 + iNum2; printf("The sum is %d",iSum); }
39. Example – Finding the sum of two numbers using functions ( parameter passing and returning value) #include <stdio.h> #include <conio.h> intfnSum( int iNumber1, int iNumber2); int main( intargc, char **argv ){ int iNumber1,iNumber2,iSum; printf("Enter the two numbers:"); scanf("%d%d",&iNumber1,&iNumber2); iSum = fnSum(iNumber1,iNumber2); printf("The sum is %d",iSum); getch(); return 0; } intfnSum(int iNum1,int iNum2){ intiTempSum; iTempSum=iNum1 + iNum2; return iTempSum; }
40. Simple Example 1 #include<stdio.h> #include<conio.h> int addition (int a, int b) { int r; r=a+b; return (r); } int main () { int z; z = addition (5,3); printf("The result is %d",z); getch(); return 0; }
41. #include<stdio.h> #include<conio.h> int subtraction (int a, int b) { int r; r=a-b; return (r); } int main () { int x=5, y=3, z; z = subtraction (7,2); printf("The first result is %d",z); printf("The second result is %d",subtraction (7,2)); printf("The third result is %d",subtraction (x,y)); z= 4 + subtraction (x,y); printf("The fourth result is %d",z); getch(); return 0; }