2. FUNCTION
A Function is a sub-program, which contains one or
more statements and it performs some task when its
called.
A computer program cannot handle all the tasks by it
self. Instead its requests other program like entities –
called functions in C to get its tasks done.
A function is a self contained block of statements that
perform a coherent task of same kind
KIRTHIKA KM /AP/CSE
3. Why we use functions?
Writing functions avoids rewriting the same code over and
over.
Suppose that there is a section of code in a program that
calculates area of a circle. If later in the program we want to
calculate the area of a different circle, we wont like to write
the same instructions again.
Instead, we would prefer to jump to a “section of code” that
calculates area and then jump back to the place from where
we left off.
This section of code is nothing but a function.
KIRTHIKA KM /AP/CSE
4. Using functions it becomes easier to write programs and
keep track of what they are doing.
If the operation of a program can be divided in to separate
activities, and each activity placed in a different function,
then each could be written and checked more or less
independently.
Separating the code in to modular functions also makes the
pro-gram easier to design and understand.
Why we use functions?
KIRTHIKA KM /AP/CSE
5. TYPES
There are two different types of functions:
Pre-defined functions
User-defined functions
KIRTHIKA KM /AP/CSE
6. Pre-Defined Functions
The pre-defined functions or library functions are
built-in functions.
The user can use the functions, but cannot modify
those functions.
Example: sqrt()
KIRTHIKA KM /AP/CSE
7. User-Defined Functions
The functions defined by the user for their
requirements are called user-defined functions.
Whenever it is needed, the user can modify this
function.
Example: sum(a,b)
KIRTHIKA KM /AP/CSE
8. Advantage of User-Defined Functions
The length of the source program can be reduced.
It is easy to locate errors.
It avoids coding of repeated instructions.
KIRTHIKA KM /AP/CSE
10. Function
Syntax
datatype function_name (parameters list)
{
local variable declaration;
…………………………
body of the function;
…………………………
return(expression);
}
KIRTHIKA KM /AP/CSE
11. How Function Works?
Once a function is called the control passes to the
called function.
The working of calling function is temporarily
stopped.
When the execution of called function is completed
then the control returns back to the calling function
and executes the next statement.
KIRTHIKA KM /AP/CSE
13. Parameters
Actual Parameter
These are the parameters which are transferred from
the calling function to the called function.
Formal Parameter
These are the parameters which are used in the called
function.
KIRTHIKA KM /AP/CSE
15. return Statement
The return statement may or may not send some
values to the calling function.
Syntax:
return; (or)
return (expression);
KIRTHIKA KM /AP/CSE
16. Function Prototypes
There are four types:
Function with no arguments and no return values.
Function with arguments and no return values.
Function with arguments and return values.
Function with no arguments and with return values.
KIRTHIKA KM /AP/CSE
17. Function with no arguments
and no return values
Here no data transfer takes place between the calling
function and the called function.
These functions act independently, i.e. they get input
and display output in the same block.
KIRTHIKA KM /AP/CSE
21. Function with arguments
and no return values
Here data transfer take place between the calling
function and the called function.
It is a one way data communication, i.e. the called
program receives data from calling program but it does
not return any value to the calling program.
KIRTHIKA KM /AP/CSE
25. Function with arguments
and return values
Here data transfer takes place between the calling
function and the called function as well as between
called function and calling function .
It is a two way data communication, i.e. the called
program receives data from calling program and it
returns some value to the calling program.
KIRTHIKA KM /AP/CSE
29. Function with no arguments
and with return values
Here data transfer takes place between the called
function and the calling function.
It is a one way data communication, i.e. the called
program does not any receive data from the calling
program but it returns some value to the calling
program.
KIRTHIKA KM /AP/CSE
31. Example
#include <stdio.h>
#include<conio.h>
void main()
{
int add(),d;
d=add();
printf("nSum is:%d",d);
}
int add() //function with no argument
{
int a,b,c;
printf("nEnter two number:");
scanf("%d%d",&a,&b);
c=a+b;
return(c);
}
KIRTHIKA KM /AP/CSE
33. Parameter Passing Methods
There are two different ways of passing parameters to a
method, they are:
Call by value
Call by reference
KIRTHIKA KM /AP/CSE
34. Call by value
Actual arguments are passed to the formal arguments.
Any changes made to the formal argument does not
affect the actual argument.
KIRTHIKA KM /AP/CSE
35. Example
#include <stdio.h>
#include<conio.h>
void main()
{
int x,y,change(int,int);
printf("nEnter value of x:");
scanf("%d",&x);
printf("nEnter value of y:");
scanf("%d",&y);
change(x,y);
printf("nnValues in the
Main()-->x=%d,y=%d",x,y);
}
int change(int a,int b)
{
int c;
c=a;
a=b;
b=c;
printf("nValues in the
Fuction --
>x=%d,y=%d",a,b);
}
KIRTHIKA KM /AP/CSE
36. Output
Enter value of x:5
Enter value of y:6
Values in the Function -->x=6,y=5
Values in the Main()-->x=5,y=6
KIRTHIKA KM /AP/CSE
37. Call by reference
Instead of passing values, the address of the argument
will be passed.
Any changes made to the formal argument will affect
the actual argument.
KIRTHIKA KM /AP/CSE
38. Example
#include <stdio.h>
#include<conio.h>
void main()
{
int x,y,change(int*,int*);
printf("nEnter value of
x:");
scanf("%d",&x);
printf("nEnter value of
y:");
scanf("%d",&y);
change(&x,&y);
printf("nnValues in
the Main()--
>x=%d,y=%d",x,y);
}
int change(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
printf("nValues in the
Function --
>x=%d,y=%d",*a,*b);
}
KIRTHIKA KM /AP/CSE
39. Output
Enter value of x:5
Enter value of y:6
Values in the Function -->x=6,y=5
Values in the Main()-->x=6,y=5
KIRTHIKA KM /AP/CSE
40. Recursion
It is a process of calling the same function itself again and
again until some condition is satisfied.
Syntax:
func1()
{
………..
func1();
…………
}
KIRTHIKA KM /AP/CSE
41. Example
#include<stdio.h>
#include<conio.h>
void main()
{
int a;
int rec(int);
printf("nEnter the number:");
scanf("%d",&a);
printf("The factorial of %d! is
%d",a,rec(a));
}
int rec(int x)
{
int f;
if(x==1)
return(1);
else
f=x*rec(x-1);
return(f);
}
Output:
Enter the number:5
The factorial of 5! is 120
KIRTHIKA KM /AP/CSE
43. Library Function
Library functions are the pre-defined functions.
The library function provides functions like
mathematical, string manipulation etc,.
In order to use a library function, it is necessary to call
the appropriate header file at the beginning of the
program.
The header file informs the program of the name,
type, and number and type of arguments, of all of the
functions contained in the library in question.
A header file is called via the preprocessor statement.
KIRTHIKA KM /AP/CSE
44. Some Examples of Library
Functions
sqrt(x):
It is used to find the square root of x
Example: sqrt(36) is 6
abs(x):
It is used to find the absolute value of x
Example: abs(-36) is 36
pow(x,y):
It is used to find the value of xy
Example: pow(5,2) is 25
KIRTHIKA KM /AP/CSE
45. ceil(x):
It is used to find the smallest integer greater than or equal to x.
Example: ceil(7.7) is 8
rand():
It is used to generate a random number.
sin(x):
It is used to find the sine value of x
Example: sin(30) is 0.5
cos (x):
It is used to find the cosine value of x
Example: cos(30) is 0.86
KIRTHIKA KM /AP/CSE
46. tan(x):
It is used to find the tan value of x
Example: tan(30) is 0.577
toascii(x):
It is used to find the ASCII value of x
Example: toascii(a) is 97
toupper(x):
It is used to convert lowercase character to uppercase.
Example: toupper(‘a’) is A toupper(97) is A
tolower(x):
It is used to convert uppercase character to lowercase.
Example: tolower(‘A’) is a
KIRTHIKA KM /AP/CSE
48. printf("nThe absolute value of -6 is %d",abs(-6));
printf("nThe value of sin 45 is %f",sin(45));
printf("nThe uppercase of 'a' is %c",toupper('a'));
printf("nThe uppercase of 97 is %c",toupper(97));
getch();
}
KIRTHIKA KM /AP/CSE
49. Output:
Enter the number:6
The square root of 6 is 2.449490
The value of 6 power 2 is 36.000000
The ceiling of 6.7 is 7.000000
The floor of 6.7 is 6.000000
The absolute value of -6 is 6
The value of sin 45 is 0.850904
The uppercase of 'a' is A
The uppercase of 97 is A
KIRTHIKA KM /AP/CSE
50. Applications:
Math functions
Computation of Sine Series
Random Number Generation
Tower of Hanoi
Factorial using Recursive functions.
KIRTHIKA KM /AP/CSE
52. Pointers
Pointer is a variable that contains the address of
another variable i.e.. direct address of the memory
location.
Like any variable or constant, you must declare a
pointer before you can use it to store any variable
address.
KIRTHIKA KM /AP/CSE
55. Pointer Declaration
Syntax:
data-type *pointer-name;
data-type - Type of the data to
which the pointer points.
pointer-name - Name of the pointer
Example: int *a;
KIRTHIKA KM /AP/CSE
56. Accessing Variable through Pointer
If a pointer is declared and assigned to a variable, then
the variable can be accessed through the pointer.
Example:
int *a;
x=5;
a=&x;
KIRTHIKA KM /AP/CSE
63. Example
#include<stdio.h>
#include<conio.h>
void main()
{
int a=10;
int *b,**c;
b=&a;
c=&b;
printf("n The Value of a = %d",a);
printf("n The Address of a = %u",&a);
printf("n The Value of b = %d",b);
printf("n The Address of b = %u",&b);
printf("n The Value of c = %d",c);
printf("n The Address of c = %u",&c);
}
KIRTHIKA KM /AP/CSE
64. Output
The Value of a = 10
The Address of a = 5001
The Value of b = 5001
The Address of b = 8000
The Value of c = 8000
The Address of c = 9000
KIRTHIKA KM /AP/CSE
65. Pointers and Arrays
The elements of the array can also be accessed through
a pointer.
Example
int a[3]={2,3,7};
int *b;
b=a;
KIRTHIKA KM /AP/CSE
70. Illustration of the example:
2 3 7 9 10
a[0] a[1] a[2] a[3] a[4]
8724 8726 8728 8730 8732
Array
Value
Address
KIRTHIKA KM /AP/CSE
71. Output
The Value of a[0] = 2
The Address of a[0] = 8724
The Value of a[1] = 3
The Address of a[1] = 8726
The Value of a[2] = 7
The Address of a[2] = 8728
The Value of a[3] = 9
The Address of a[3] = 8730
The Value of a[4] = 10
The Address of a[4] = 8732
KIRTHIKA KM /AP/CSE