Presentation is loading. Please wait.

Presentation is loading. Please wait.

UNIT - 4 FUNCTIONS AND POINTERS. FUNCTION Functions is a sub-program that contains one or more statements and it performs some task when called.

Similar presentations


Presentation on theme: "UNIT - 4 FUNCTIONS AND POINTERS. FUNCTION Functions is a sub-program that contains one or more statements and it performs some task when called."— Presentation transcript:

1 UNIT - 4 FUNCTIONS AND POINTERS

2 FUNCTION Functions is a sub-program that contains one or more statements and it performs some task when called.

3 Types Functions User-Defined Functions Pre-Defined Functions

4 Pre-Defined Functions The pre-defined functions or library functions are built-in functions. The user can use the functions, but cannot modify the function. Example: sqrt()

5 User-Defined Functions The functions defined by the user for their requirement are called user-defined functions. Whenever it is needed, The user can modify the function. Example: sum(a,b)

6 Advantage of User-Defined Functions The length of the source program can be reduced. It is easy to locate error. It avoid coding of repeated instructions.

7 Elements of User-Defined Function Function declaration Function definition Function call

8 Function Syntax datatype function_name (parameters list) { local variable declaration; ………………………… body of the function; ………………………… return(expression); }

9 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 return back to the calling function and execute the next statement.

10

11 Parameters Actual Parameter These are the parameters transferred from the calling function to the called function. Formal Parameter These are the parameters which is used in the called function.

12

13 return Statement The return statement may or may not send some values to the calling function. Syntax: return; (or) return(expression);

14 Function Prototypes 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.

15 Function with no arguments and no return values Here no data transfer take 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.

16

17 Example #include void main() //calling function { void add(void); add(); } void add()//called function { int a,b,c; printf("\nEnter two number:"); scanf("%d%d",&a,&b); c=a+b; printf("\nSum is:%d",c); }

18 Output Enter two number:3 4 Sum is:7

19 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.

20

21 Example #include void main() { int a,b; void add(int,int); printf("\nEnter two number:"); scanf("%d%d",&a,&b); add(a,b); } void add(int x,int y) //function with arguments { int z; z=x+y; printf("\nSum is:%d",z); }

22 Output Enter two number:2 4 Sum is:6

23 Example #include void main() { int a,b; void add(int a,int b); printf("\nEnter two number:"); scanf("%d%d",&a,&b); add(a,b); } void add(int x,int y) //function with arguments { int z; z=x+y; printf("\nSum is:%d",z); }

24 Output Enter two number:2 4 Sum is:6

25 Function with arguments and return values Here data transfer take 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 return some value to the calling program.

26

27 Example #include void main() { int a,b,c; int add(int,int); printf("\nEnter two number:"); scanf("%d%d",&a,&b); c=add(a,b); printf("\nSum is:%d",c); } int add(int x,int y) { int z; z=x+y; return(z); }

28 Output Enter two number:6 7 Sum is:13

29 Function with no arguments and with return values Here data transfer take place between the called function and the calling function. It is a one way data communication, i.e. the called program does not receives data from calling program but it return some value to the calling program.

30

31 #include void main() { int add(),d; d=add(); printf("\nSum is:%d",d); } int add() //function wit no argument { int a,b,c; printf("\nEnter two number:"); scanf("%d%d",&a,&b); c=a+b; return(c); }

32 Output Enter two number:5 8 Sum is:13

33 Parameter Passing Methods Call by value Call by reference

34 Call by value Actual argument passed to the formal argument. Any changes to the formal argument does not affect the actual argument.

35 Example #include void main() { int x,y,change(int,int); printf("\nEnter value of x:"); scanf("%d",&x); printf("\nEnter value of y:"); scanf("%d",&y);

36 change(x,y); printf("\n\nValues 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); }

37 Output Enter value of x:5 Enter value of y:6 Values in the Fuction -->x=6,y=5 Values in the Main()-->x=5,y=6

38 Call by reference Instead of passing value, the address of the argument will be passed. Any changes to the formal argument will affect the actual argument.

39 Example #include void main() { int x,y,change(int*,int*); printf("\nEnter value of x:"); scanf("%d",&x); printf("\nEnter value of y:"); scanf("%d",&y);

40 change(&x,&y); printf("\n\nValues 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); }

41 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

42 Recursion It is a process of calling the same function itself again and again until some condition is satisfied. Syntax: func1() { ……….. func1(); }

43 Example #include void main() { int a; int rec(int); printf("\nEnter the number:"); scanf("%d",&a); printf("The factorial of %d! is %d",a,rec(a)); }

44 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

45 Example: Working of 3!

46 Tower of Honoi 1 2 3 32 3 1 3 2 3

47 1 2 3 32 3 1 3 2 3

48 Library Function It is pre-defined function. The library function provides functions like mathematical, string manipulation etc,.

49 Example 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 x y Example: pow(5,2) is 25 ceil(x): It is used to find the smallest integer greater than or equal to x Example: ceil(7.7) is 8

50 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 tan(x): It is used to find the tan value of x Example: tan(30) is 0.577

51 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

52 Example: #include void main() { int x,y=2; printf("\nEnter the number:"); scanf("%d",&x); printf("\nThe squareroot of %d is %f",x,sqrt(x)); printf("\nThe value of %d power%dis%f ",x,y,pow(6,2));

53 printf("\nThe ceiling of 6.7 is %f",ceil(6.7)); printf("\nThe floor of 6.7 is %f",floor(6.7)); 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(); }

54 Output: Enter the number:6 The squareroot 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

55 Pointers Pointer is a variable that contains the memory address of another variable.

56 Example: x=5 x Variable 1002 Address 5 Value

57 Example #include void main() { int x=5; printf("\n The Address of x = %u",&x); printf("\n The Value of x = %d",x); } Output The Address of x = 8714 The Value of x = 5

58 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;

59 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;

60 Example #include void main() { int x=5; int *a; a=&x; printf("\n The Value of x = %d",x); printf("\n The Address of x = %u",&x); printf("\n The Value of a = %d",a); printf("\n The Value of x = %d",*a); }

61 Output The Value of x = 5 The Address of x = 8758 The Value of a = 8758 The Value of x = 5

62 Example: #include void main() { int y=10; int *a; a=&y; printf("\n The Value of y = %d",y); printf("\n The Address of y = %u",&y); printf("\n The Value of a = %d",a); printf("\n The Address of a = %u",&a); }

63 500110 8000 ay 5001 Variable Value Address

64 Output The Value of y = 10 The Address of y = 5001 The Value of a = 5001 The Address of a = 8000

65 Null Pointer A pointer is said to be null pointer if zero is assigned to the pointer. Example int *a,*b; a=b=0;

66 Pointer to Pointer Here one pointer stores the address of another pointer variable. Example: int x=10,*a,**b; a=&x; b=&a;

67 500110 8000 ax 5001 Variable Value Address 8000 9000 b

68 Example #include 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); }

69 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

70 Pointers and Functions Call by Value Call by Reference

71 Call by value Actual argument passed to the formal argument. Any changes to the formal argument does not affect the actual argument.

72 Example #include void main() { int x,y,swap(int,int); printf("\nEnter value of x:"); scanf("%d",&x); printf("\nEnter value of y:"); scanf("%d",&y);

73 change(x,y); printf("\n\nValues in the Main()-->x=%d,y=%d",x,y); } int swap(int a,int b) { int c; c=a; a=b; b=c; printf("\nValues in the Function -->x=%d,y=%d",a,b); }

74 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

75 Call by reference Instead of passing value, the address of the argument will be passed. Any changes to the formal argument will affect the actual argument.

76 Example #include void main() { int x,y,change(int*,int*); printf("\nEnter value of x:"); scanf("%d",&x); printf("\nEnter value of y:"); scanf("%d",&y);

77 change(&x,&y); printf("\n\nValues 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); }

78 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

79 Pointer to Array The elements of the array can also be accessed through a pointer. Example int a[3]={2,3,7}; int *b; b=a;

80 Example: #include void main() { int a[3]={2,3,7}; int *b; b=a; printf("\n The Value of a[0] = %d",a[0]); printf("\n The Address of a[0] = %u",&a[0]); printf("\n The Value of b = %d",b); }

81 87442 9000 ba[0] 8744 Variable Value Address

82 Output The Value of a[0] = 2 The Address of a[0] = 8744 The Value of b = 8744

83 Example #include void main() { int a[5]={2,3,7,9,10}; int i; for(i=0;i<5;i++) { printf("\n The Value of a[%d] = %d",i,a[i]); printf("\n The Address of a[%d] = %u",i,&a[i]); }

84 237910 a[0] a[1]a[2] a[3] a[4] 8724 8726 8728 8730 8732 Array Value Address

85 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

86 Example #include void main() { int a[5]={1,2,3,4,5}; int i,sum=0; int *b; b=a; for(i=0;i<5;i++) { sum=sum + *b; b++;//b=b+1 } printf("\n The Sum is %d",sum); }

87 Output The Sum is 15

88 Pointer and Structures Syntax: struct structure_name { structure element1; structure element2; ……………………. }variable,*ptr;

89 Example: struct stud { int sno; char name[10]; int mark; }; struct stud *s;

90 Example #include struct stud { int regno; char name[10]; int m1; int m2; int m3; }; struct stud s; struct stud *t;

91 void main() { float tot,avg; t=&s; printf("\nEnter the student regno,name,m1,m2,m3:"); scanf("%d%s%d%d%d",&s.regno,&s.name,&s.m1,&s.m2,& s.m3); tot=s.m1+s.m2+s.m3; avg=tot/3; printf("\nThe student Details are:"); printf("\n%d\t%s\t%f\t%f",s.regno,s.name,tot,avg); printf("\n%d\t%s\t%f\t%f",t->regno,t->name,tot,avg); }

92 Output Enter the student regno,name,m1,m2,m3:1 aaa 76 89 76 The student Details are: 1 aaa 241.000000 80.333336

93 Command Line Argument It allows the user to pass some information to the program while running the program.

94 Example #include void main(int argc,char argv[]) { printf("\n The Argument is %s",argv[0]); getch(); }

95 Output C:\tc>a The Argument is C:\TC\A.EXE

96 String Palindrome #include void main() { char s1[15],s2[15]; printf("\nenter the string:"); scanf("%s",s1); strcpy(s2,s1); strrev(s1);

97 if(strcmp(s1,s2)==0) printf("\n The string is palindrome"); else printf("\n The string is not a palindrome"); getch(); } Output: enter the string: aba The string is palindrome


Download ppt "UNIT - 4 FUNCTIONS AND POINTERS. FUNCTION Functions is a sub-program that contains one or more statements and it performs some task when called."

Similar presentations


Ads by Google