Presentation is loading. Please wait.

Presentation is loading. Please wait.

FUNCTIONS AND POINTERS

Similar presentations


Presentation on theme: "FUNCTIONS AND POINTERS"— Presentation transcript:

1 FUNCTIONS AND POINTERS
UNIT - 5 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 Pre-Defined Functions User-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 <stdio.h> #include<conio.h>
void main() //calling function { void add(); 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 <stdio.h> #include<conio.h> 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 <stdio.h> #include<conio.h> 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 <stdio.h> #include<conio.h> 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 <stdio. h> #include<conio
#include <stdio.h> #include<conio.h> 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 <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);

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 <stdio.h> #include<conio.h> void main() {
int x,y; int 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<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)); }

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 3 3 2 3 2 1 3 2 1 3

47 Tower of Honoi 3 3 2 3 2 1 3 2 1 3

48 #include<stdio. h> #include<conio
#include<stdio.h> #include<conio.h> void TOH(int n,char x,char y,char z); void main() { int n; printf("\nEnter number of plates:"); scanf("%d",&n); TOH(n,'A','B','C'); getch(); }

49 void TOH(int n,char x,char y,char z) { if(n>0) { TOH(n-1,x,z,y); // Recursive call 1 printf("\n%c -> %c",x,y); TOH(n-1,z,y,x); // Recursive call 2 }

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

51 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 xy 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

52 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

53 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

54 Example: #include<stdio.h> #include<conio.h>
#include<math.h> #include<ctype.h> 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));

55 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(); }

56 Output: Enter the number:6 The squareroot of 6 is 2.449490
The value of 6 power 2 is The ceiling of 6.7 is The floor of 6.7 is The absolute value of -6 is 6 The value of sin 45 is The uppercase of 'a' is A The uppercase of 97 is A

57 Array An Array is a collection of similar data items, that are stored under a common name. Types One-Dimensional array Two-Dimensional array Multi-Dimensional array

58 One-Dimensional array Array Declaration
Syntax: data_type array_name[size]; Example: int x[3]; x X[0] X[1] X[2]

59 Array initialization At compile time At run time

60 At compile time x Syntax: data_type array_name[size]={variables};
Example: int x[3]={5,3,7}; x 5 3 7 X[0] X[1] X[2]

61 At Run time Array can also initialize at the run time. Example:
while(i<10) { if(i<5) sum[i]=0; else sum[i]=sum[i]+i; }

62 Example: scanf(“%d%d”,&a[0],&a[1]);

63 Example #include<stdio.h> #include<conio.h> void main() {
int x[2],i; printf("\nEnter the inputs:"); for(i=0;i<2;i++) scanf("%d",&x[i]); printf("\nThe value in x[%d] is %d",i,x[i]); getch(); }

64 Output Enter the inputs:3 6 The value in x[0] is 3

65 Example #include<stdio.h> #include<conio.h> void main() {
int i; char x[5]={'a','b','c','d','e'}; clrscr(); for(i=0;i<5;i++) printf("\nThe value in x[%d] is %c",i,x[i]); getch(); }

66 Output The value in x[0] is a The value in x[1] is b
The value in x[2] is c The value in x[3] is d The value in x[4] is e

67 Two-Dimensional array Array Declaration
Syntax: data_type array_name[row_size] [col_size]; Example: int x[3][2]; Col 0 Col 1 row 0 row 1 row 2 X[0][0] X[1][0] X[2][0] X[0][1] X[1][1] X[2][1]

68 Array Initialization Syntax:
data_type array_name[row_size] [col_size];={variables}; Example: int x[2][2]={1,50,2,75};

69 int x[2][2]={ {1,50}, {2,75} }; (or) int x[ ][2]={ {1,50},

70 Col 0 Col 1 row 0 row 1 1 50 2 75

71 Example #include<stdio.h> #include<conio.h> void main() {
int i,j; int x[2][2]={ {1,50}, {2,75} }; clrscr(); for(i=0;i<2;i++) for(j=0;j<2;j++) printf("\nThe value in x[%d][%d] is %d",i,j,x[i][j]); getch(); }

72 Output The value in x[0][0] is 1 The value in x[0][1] is 50

73 Example #include<stdio.h> #include<conio.h> void main() {
int i,j; int x[][2]={ {1,50},{2,75},{3,65}}; clrscr(); for(i=0;i<=2;i++) for(j=0;j<2;j++) printf("\nThe value in x[%d][%d] is %d",i,j,x[i][j]); getch(); }

74 Output The value in x[0][0] is 1 The value in x[0][1] is 50

75 Matrix Addition #include<stdio.h> #include<conio.h>
void main() { int i,j,k,r1,r2,c1,c2; int a[5][5],b[5][5],c[5][5]; clrscr(); step1: printf("\n Enter the size of matrix A:"); scanf("%d%d",&r1,&c1); printf("\n Enter the size of matrix B: "); scanf("%d%d",&r2,&c2); if((c1==c2)&&(r1==r2)) goto step2; else goto step1;

76 step2: printf("\n Enter the elements of matrix A \n"); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) scanf("%d",&a[i][j]); } printf("\n Enter the elements of matrix B \n"); for(i=0;i<r2;i++) for(j=0;j<c2;j++) scanf("\t%d",&b[i][j]);

77 for(i=0;i<r1;i++) { for(j=0;j<c1;j++) c[i][j]=0; c[i][j]=c[i][j]+a[i][j]+b[i][j]; } printf("\n The resultant matrix after addition of A & B is\n"); printf("%d\t",c[i][j]); printf("\n"); getch();

78 Output Enter the size of matrix A: 2 2 Enter the size of matrix B: 2
Enter the elements of matrix A Enter the elements of matrix B 3 The resultant matrix after addition of A&B is

79 Matrix Multiplication
#include<stdio.h> #include<conio.h> void main() { int i,j,k,r1,r2,c1,c2; int a[5][5],b[5][5],c[5][5]; clrscr(); step1: printf("\n Enter the size of matrix A \n"); scanf("%d%d",&r1,&c1); printf("\n Enter the size of matrix B \n"); scanf("%d%d",&r2,&c2); if(c1==r2) goto step2; else goto step1;

80 step2: printf("\n Enter the elements of matrix A \n"); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) scanf("%d",&a[i][j]); } printf("\n Enter the elements of matrix B \n"); for(i=0;i<r2;i++) for(j=0;j<c2;j++) scanf("\t%d",&b[i][j]);

81 for(i=0;i<r1;i++) { for(j=0;j<c2;j++) c[i][j]=0; for(k=0;k<c1;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } printf("%d\t",c[i][j]); printf("\n"); getch();

82 Output 2 Enter the size of matrix B:2 Enter the elements of matrix A 4
Enter the size of matrix A:2 2 Enter the size of matrix B:2 Enter the elements of matrix A 4 Enter the elements of matrix B The resultant matrix is

83 Enter the size of matrix A:2
3 Enter the size of matrix B:3 2 Enter the elements of matrix A 1 4 5 6 Enter the elements of matrix B 8

84

85 Passing array to Function
Here an array is transferred as parameter to a function. void main() void fun(n,b[]) { { void fun(int,int); int x,b[5]; int a[5],n; ………….. …………… ………….. fun(n,a); …………… } }

86 Example #include<stdio.h> #include<conio.h>
void add(int,int b[]); void main() { int a[5],i,n; clrscr(); printf("\n Enter the Number: "); scanf("%d",&n); printf("\n Enter the Values: "); for(i=0;i<n;i++) scanf("%d",&a[i]); add(n,a); }

87 void add(int x,int b[]) { int sum=0,i; for(i=0;i<x;i++) sum=sum+b[i]; printf("\nThe sum is: %d",sum); }

88 Output Enter the Number: 5 Enter the Values: 1 2 3 4 5 The sum is: 15

89 Array of Characters In array the characters are terminated by the null (‘\0’) character. Example: char a[]={a,b,c}; a b c \0

90 Example #include<stdio.h> #include<conio.h> void main() {
int i=0; char a[]="abcd"; clrscr(); while(a[i]!='\0') printf("\t%c",a[i]); i++; }

91 Output a b c d

92 Multi Dimensional Array
Syntax datatype array_name [size1][size2]….[size n] datatype - type of the data. array_name -name of the array. size -size of the array.

93 Example: int a[3][3][3]; Col 0 Col 1 Col 2 row 0 row 1 row 2 X[0][0]

94 String Functions strlen() It is used to find the length of the string.
syntax: strlen(string) strcpy() It is used to copy one string to another. strcpy(string1,string2) strcat() It is used to combine two strings. strcat(string1,string2)

95 strcmp() It is used to compare two strings. syntax: strcmp(string1,string2) Returns 0 if two strings are equal. Return value <0 if s1 is less than s2. Return value >0 if s1 is greater than s2. strrev() It used to reverse a string. strrev(string) strlwr(), strupr() It used to change the case of a string. strlwr(string) strupr(string)

96 strncpy() It used to copy ‘n’ characters of one string to another. strstr() It is used to determine the first occurrence of a given string in another string. strncat() It Appends source string to destination string upto specified length. strspn() It is used t find upto what length two strings are identical.

97 strncmp() strcmpi() strnicmp() strchr() strrchr()
It is used to compare ‘n’ character of two strings. strcmpi() It is used to compare two strings without regarding the case. strnicmp() It is used to compare first ‘n’ characters of two strings without regarding the case. strchr() It is used to determine the first occurrence of a given character in a string. strrchr() It is used to determine the last occurrence of a given character in a string.

98 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="college"; int b; clrscr(); b=strlen(a); printf("\nThe length of the string is %d",b); getch(); } Output: The length of the string is 7

99 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="IT"; char b[]="Dept"; clrscr(); strcpy(a,b); printf("\nThe string is %s",a); getch(); } Output: The string is Dept

100 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="IT"; char b[]="Dept"; clrscr(); strcat(a,b); printf("\nThe string is %s",a); getch(); } Output: The string is ITDept

101 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="itdept"; char b[]="it"; int i; clrscr(); i=strcmp(a,b); if(i==0) printf("\nstrings are equal:%d",i); else if(i<0) printf("\nstring1 is less than string2:%d",i);

102 else printf("\nstring1 is greater than string2:%d",i); getch(); } Output: string1 is greater than string2:100

103 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="itdept"; clrscr(); printf("\nThe string is :%s",a); strupr(a); printf("\nThe string after conversion to uppercase :%s",a); strlwr(a); printf("\nThe string after conversion to lowercase :%s",a); getch(); }

104 Output The string is :itdept
The string after conversion to uppercase :ITDEPT The string after conversion to lowercase :itdept

105 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="Dept"; clrscr(); printf("\nThe string is %s",strrev(a)); getch(); } Output: The string is tpeD

106 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="itdept"; char b[15]; int i=0; clrscr(); strncpy(b,a,2); b[2]='\0'; printf("\nThe string is :%s",b); getch(); }

107 Output: The string is :it

108 String Palindrome #include<stdio.h> #include<conio.h>
#include<string.h> void main() { int len,i,j; char str[15]; clrscr(); printf("\n Enter the string:"); scanf("%s",str); len=strlen(str);

109 for(i=0,j=len-1;i<len/2;i++,j--)
{ if(str[i]!=str[j]) printf("\nThe String is not a palindrome"); getch(); exit(0); } printf("\nThe String is a palindrome"); Output: Enter the string:abcba The String is a palindrome

110 Enumerated Data Type It is user defined data type.
The user can create their own data type and define some values to the variables. Syntax: enum tag_name { enum1; enum2; ………. };

111 Example #include <conio.h> #include <stdio.h> void main()
{ enum week {sun,mon,tue,wed,thr,fri,sat}; clrscr(); printf("\nMonday=%d",mon); printf("\nSaturday=%d",sat); getch(); } Output: Monday=1 Saturday=6

112 Example #include <conio.h> #include <stdio.h> void main()
{ enum week {sun=10,mon,tue,wed,thr,fri,sat}; clrscr(); printf("\nMonday=%d",mon); printf("\nsaturday=%d",sat); getch(); } Output: Monday=11 saturday=16

113 Structure A Structure is a collection of different data items, that are stored under a common name. Syntax: struct structure_name { structure element1; structure element2; ……………………. };

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

115 Example #include<stdio.h> #include<conio.h> struct stud {
int regno; char name[10]; int m1; int m2; int m3; }; struct stud s; void main() float tot,avg;

116 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); }

117 Output Enter the student regno,name,m1,m2,m3:100 aaa 87 98 78
The student Details are: aaa

118 Structure assignment It is possible to assign one structure information to another structure of same type using simple assignment statement.

119 Example #include<stdio.h> #include<conio.h> void main() {
struct int a; }x,y; clrscr(); x.a=10; y=x; printf("The value of y.a is%d",y.a); getch(); }

120 Output The value of y.a is10

121 Example #include<stdio.h> #include<conio.h> struct stud {
int regno; char name[10],grade; int m1,m2,m3; float avg,tot; } s[10]; void main() int i,n; printf("\nEnter the no.of students:"); scanf("%d",&n);

122 for(i=0;i<n;i++) { printf("\nEnter the student regno,name,m1,m2,m3:"); scanf("%d%s%d%d%d",&s[i].regno,&s[i].name,&s[i].m1, &s[i].m2,&s[i].m3); s[i].tot=s[i].m1+s[i].m2+s[i].m3; s[i].avg=s[i].tot/3; if(s[i].m1<35||s[i].m2<35||s[i].m3<35) s[i].grade='f'; else if(s[i].avg>=75) s[i].grade='d'; else if(s[i].avg>=60)

123 s[i].grade='A'; else if(s[i].avg>=50) s[i].grade='B'; else if(s[i].avg>=35) s[i].grade='C'; } printf("\nSTUDENT MARK LIST\n"); printf("\nREGNO\tNAME\tTOTAL\tAvg\tGRADE"); for(i=0;i<n;i++) printf("\n%d\t%s\t%f\t%f\t%c",s[i].regno,s[i].name,s[i].tot,s[i].avg,s[i].grade); getch();

124 Enter the no.of students:2
Enter the student regno,name,m1,m2,m3:101 aaa 89 98 78 Enter the student regno,name,m1,m2,m3:102 bbb 59 68 76 STUDENT MARK LIST REGNO NAME TOTAL Avg GRADE aaa d bbb A

125 Union An Union is a collection of different data items, that are stored under a common name. Here same memory is shared by its members. Syntax: union union _name { union element1; union element2; ………………… };

126 Example: union result { int mark; float avg; char grade; }; union result s;

127 Example #include<stdio.h> #include<conio.h> union stud {
int a; char b[2]; }; void main() union stud c;

128 c.a=256; printf("\nc.a value is%d",c.a); printf("\nc.b[0] value is%d",c.b[0]); printf("\nc.b[1] value is%d",c.b[1]); } Output: c.a value is256 c.b[0] value is0 c.b[1] value is1

129 256 = 00000010 00000000 c.a - 2 Byte c.b[0] 1 Byte c.b[0] 1 Byte
Higher bit Lower bit c.b[0] c.b[1]

130 Example #include<stdio.h> #include<conio.h> struct student
{ int a; int b; char c; }s; union student1 }s1;

131 void main() { printf("\nThe size of struct is %d",sizeof(s)); printf("\nThe size of union is %d",sizeof(s1)); getch(); } Output: The size of struct is 5 The size of union is 2

132 Structure & Union int int char int ,int, char 2 Byte 2Byte 1Byte

133 Preprocessor It is a program that processes the source program before compilation. It operates under the following directives File Inclusion Macro substitution Conditional inclusion

134 File Inclusion It is used to include some file that contains functions or some definitions. Syntax: #include<filename> (or) #include“filename” Eg: #include<stdio.h> #include “ex.c”

135 Example #include<stdio.h> #include<conio.h>
#include "addition.txt" void main() { int a,b; printf("\nEnter the numbers:"); scanf("%d%d",&a,&b); printf("The Value is %d",add(a,b)); getch(); }

136 addition.txt int add(int a,int b) { return(a+b); }

137 Output Enter the numbers:7 4 The Value is 11

138 Example #include<stdio.h> #include<conio.h>
#include "fact.c" void main() { int a; printf("\nEnter the number:"); scanf("%d",&a); printf("The factorial of %d! is %d",a,rec(a)); getch(); }

139 fact.c int rec(int x) { int f; if(x==1) return(1); else f=x*rec(x-1);
return(f); }

140 Output Enter the number:5 The factorial of 5! is 120

141 Macro Substitution It is used to define and use integer, string, or identifier in the source program The three forms of macros are Simple Macro Argumented Macro Nested Macro

142 Simple Macro It is used to define some constants Syntax
# define identifier string/integer Eg: #define pi 3.14 #define CITY “chennai”

143 Example #include<stdio.h> #include<conio.h>
#define pi 3.14 #define CITY "chennai" void main() { printf("The Value is %f",2*pi); printf("\nThe Value CITY is %s",CITY); getch(); } Output: The Value is The Value CITY is chennai

144 Argumented Macro It is used to define some complex forms in the source program. Syntax: #define identifier (v1,v2,….) string/integer Eg: #define cube(n) (n*n*n)

145 Example #include<stdio.h> #include<conio.h>
#define cube(n) (n*n*n) void main() { printf("The Value of 3 cube is %d",cube(3)); getch(); } Output: The Value of 3 cube is 27

146 Nested Macro Here one macro is used by another macro. Eg: #define a 3
#define sq a*a

147 Example #include<stdio.h> #include<conio.h> #define a 3
#define sq a*a void main() { printf("The Value is %d",sq); getch(); } Output: The Value is 9

148 Conditional Inclusion
It is used to include some conditional statements.

149 Example #include<stdio.h> #include<conio.h> #define a 3
#ifdef a #define c a+5 #endif void main() { printf("\nThe value C is %d",c); getch(); } Output: The value C is 8

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

151 Example: x=5 x Variable Address 5 Value

152 Example #include<stdio.h> #include<conio.h> 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

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

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

155 Example #include<stdio.h> #include<conio.h> 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); }

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

157 Example: #include<stdio.h> #include<conio.h> 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); }

158 a y Variable Value Address 5001 10 8000 5001

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

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

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

162 b a x Variable Value Address 8000 5001 10 9000 8000 5001

163 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); }

164 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

165 Pointers and Functions
Call by Value Call by Reference

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

167 Example #include <stdio.h> #include<conio.h> void main() {
int x,y,swap(int,int); printf("\nEnter value of x:"); scanf("%d",&x); printf("\nEnter value of y:"); scanf("%d",&y);

168 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);

169 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

170

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

172 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);

173 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);

174 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

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

176 Example: #include<stdio.h> #include<conio.h> 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); }

177 b a[0] Variable Value Address 8744 2 9000 8744

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

179 Example #include<stdio.h> #include<conio.h> 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]); }

180 Array Value Address 2 3 7 9 10 a[0] a[1] a[2] a[3] a[4]

181 Output The Value of a[0] = 2 The Address of a[0] = 8724

182 Example #include<stdio.h> #include<conio.h> 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);

183 Output The Sum is 15

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

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

186 Example #include<stdio.h> #include<conio.h> struct stud {
int regno; char name[10]; int m1; int m2; int m3; }; struct stud s; struct stud *t;

187 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); }

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

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

190 Example #include<stdio.h> #include<conio.h>
void main(int argc,char argv[]) { printf("\n The Argument is %s",argv[0]); getch(); }

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

192 String Palindrome #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char s1[15],s2[15]; printf("\nenter the string:"); scanf("%s",s1); strcpy(s2,s1); strrev(s1);

193 The string is palindrome
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

194 Developing a ‘C’ Program
The Program development life cycle is considered as a sequence of events by the programmer to develop the program. The Program development life cycle contains the following phase Program Design Program Coding Program Testing

195 Program Design Analysing the problem Algorithm development
Selection of conditional and control structure etc,.

196 Program Coding Documentation Statement construction
Input and output format etc,.

197 Program Testing It is the process of executing the program with sample data

198

199 Example #include<stdio.h> #include<conio.h> #define p 3.14
void main() { #ifdef p printf("\nPentium"); #else printf("\n Celeron"); #endif printf("\nthe value is %f",2*p); getch(); } Output: Pentium the value is

200

201 Example #include<stdio.h> #include<conio.h> struct stud {
int regno; char name[10]; int m1; int m2; int m3; }; struct stud s; void main() float tot,avg; int i;

202 printf("\nEnter the student regno,name,m1,m2,m3:");
for(i=0;i<2;i++) { 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("%d\t%s\t%f\t%f",s.regno,s.name,tot,avg);

203 Enter the student regno,name,m1,m2,m3:100
aaa 78 67 98 101 bbb 80 90 75 bbb 101bbb

204 #include <string.h>
#include <stdio.h> int main(void) { char string[15]; char *ptr, c = 'r'; strcpy(string, "This is a string"); ptr = strchr(string, c); if (ptr) printf("The character %c is at position: %d\n", c, ptr-string); else printf("The character was not found\n"); return 0; }

205 Example #include<stdio.h> #include<conio.h>
#include<string.h> void main() { char a[]="Dept"; int i=0; clrscr(); while(a[i]!='\0') printf("\nThe character is %c",a[i]); i++; } getch();

206 The character is D The character is e The character is p The character is t

207

208 Structure

209

210

211

212 Lab Exercise C Programs

213 Function-with arg & return
#include <stdio.h> #include<conio.h> 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);

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

215 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);

216 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);

217 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

218 Factorial-Recursive Fn
#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)); }

219 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

220 Example: Working of 3!

221 Matrix Multiplication
#include<stdio.h> #include<conio.h> void main() { int i,j,k,r1,r2,c1,c2; int a[5][5],b[5][5],c[5][5]; clrscr(); step1: printf("\n Enter the size of matrix A \n"); scanf("%d%d",&r1,&c1); printf("\n Enter the size of matrix B \n"); scanf("%d%d",&r2,&c2); if(c1==r2) goto step2; else goto step1;

222 step2: printf("\n Enter the elements of matrix A \n"); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) scanf("%d",&a[i][j]); } printf("\n Enter the elements of matrix B \n"); for(i=0;i<r2;i++) for(j=0;j<c2;j++) scanf("\t%d",&b[i][j]);

223 for(i=0;i<r1;i++) { for(j=0;j<c2;j++) c[i][j]=0; for(k=0;k<c1;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } printf("%d\t",c[i][j]); printf("\n"); getch();

224 Output 2 Enter the size of matrix B:2 Enter the elements of matrix A 4
Enter the size of matrix A:2 2 Enter the size of matrix B:2 Enter the elements of matrix A 4 Enter the elements of matrix B The resultant matrix is

225

226 Lab Ex:9,Finding area, circumference of circle
#include<stdio.h> #include <conio.h> void main ( ) { int r; float area,c; clrscr( ); printf(" \nEnter the value of r:"); scanf("%d",&r);

227 area=3.14*r*r; c=2*3.14*r; printf(" \nThe area is :%f",area); printf(" \nThe circumference is :%f",c); getch( ); } Output: Enter the value of r:7 The area is : The circumference is :

228 Lab Ex:9,Conversion of Celsius to Fahrenheit
#include<stdio.h> #include <conio.h> void main ( ) { float c,f; clrscr( ); printf(" \nEnter the value of c:"); scanf("%f",&c); f=(c*1.8)+32; printf(" \nThe Fahrenheit is :%f",f); getch( ); }

229 Enter the value of c:35 The fahrenheit is :

230 Lab Ex:11,Arithmetic operations
#include<stdio.h> #include<conio.h> void main() { int a,b,c,d,e,f; clrscr(); printf("\nEnter the values of A and B:"); scanf("%d%d",&a,&b); c=a+b; d=a-b; e=a*b; f=a/b;

231 printf("\nThe values of A + B:%d",c);
printf("\nThe values of A - B:%d",d); printf("\nThe values of A * B:%d",e); printf("\nThe values of A / B:%d",f); getch(); }

232 Output Enter the values of A and B:6 3 The values of A + B:9

233 Lab.Ex13,Largest among 3 nos
#include<stdio.h> #include <conio.h> void main ( ) { int a,b,c; clrscr( ); printf(" \nEnter the value of a:"); scanf("%d",&a); printf(" \nEnter the value of b:"); scanf("%d",&b); printf(" \nEnter the value of c:"); scanf("%d",&c);

234 if((a>b)&&(a>c))
{ printf(" \nA is Big"); } else if(b>c) printf(" \nB is Big"); printf(" \nC is Big"); getch( );

235 Output Enter the value of a:5 Enter the value of b:7
Enter the value of c:3 B is Big

236 String Palindrome #include<stdio.h> #include<conio.h>
#include<string.h> void main() { int len,i,j; char str[15]; clrscr(); printf("\n Enter the string:"); scanf("%s",str); len=strlen(str);

237 for(i=0,j=len-1;i<len/2;i++,j--)
{ if(str[i]!=str[j]) printf("\nThe String is not a palindrome"); getch(); exit(0); } printf("\nThe String is a palindrome"); Output: Enter the string:abcba The String is a palindrome

238 Lab.Ex:14,Quadratic Equation
#include<stdio.h> #include <conio.h> #include<math.h> void main ( ) { int a,b,c,d,r1,r2; clrscr( ); printf(" \nEnter the value of a:"); scanf("%d",&a); printf(" \nEnter the value of b:"); scanf("%d",&b); printf(" \nEnter the value of c:"); scanf("%d",&c); d=b*b-4*a*c;

239 if(d>=0) { r1=(-b+sqrt(d))/(2*a); r2=(-b-sqrt(d))/(2*a); printf(" \nThe roots are %d,%d",r1,r2); } else printf(" \nThe roots are imaginary"); getch( );

240 Output Enter the value of a:1 Enter the value of b:4
Enter the value of c:4 The roots are -2,-2


Download ppt "FUNCTIONS AND POINTERS"

Similar presentations


Ads by Google