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

Slides:



Advertisements
Similar presentations
1 Chapter 10 Strings and Pointers. 2 Introduction  String Constant  Example: printf(“Hello”); “Hello” : a string constant oA string constant is a series.
Advertisements

Lecture 09 Strings, IDEs. METU Dept. of Computer Eng. Summer 2002 Ceng230 - Section 01 Introduction To C Programming by Ahmet Sacan Mon July 29, 2002.
What is a pointer? First of all, it is a variable, just like other variables you studied So it has type, storage etc. Difference: it can only store the.
BBS514 Structured Programming (Yapısal Programlama)1 Functions and Structured Programming.
To remind us We finished the last day by introducing If statements Their structure was:::::::::
Introduction of Arrays. Arrays Array form an important part of almost all programming language. It provides a powerful feature and can be used as such.
Chapter 8 Arrays and Strings
Data Structure and C Part-6. Naming a Function Any valid variable-name can be given to the user-defined function. The main program itself is considered.
Functions in C Computer Programming(1)- 1090CS Manesh T
 Introduction Introduction  Types of Function Types of Function  Library function Library function  User defined function User defined function 
1. An array is a collection of a fixed number of components wherein all of the components are of the same type Example: Suppose that there is a list of.
Chapter 6: User-Defined Functions I Instructor: Mohammad Mojaddam
While Loop Structure while (condition) { …. // This line will process when while condition is true }
MAHENDRAN CHAPTER 6. Session Objectives Explain Type of Functions Discuss category of Functions Declaration & Prototypes Explain User Defined Functions.
By Sidhant Garg.  C was developed between by Dennis Ritchie at Bell Laboratories for use with the Unix Operating System.  Unlike previously.
POINTERS. 1.a) POINTER EXPRESSIONS Pointer variables can be used in expression If p1 and p2 are properly declared and initialized pointers then following.
FUNCTIONS. C function can be classified into two categories, namely, library functions and user – defined functions. main is an example of user – defined.
Chapter 8 Arrays and Strings
Functions Why we use functions C library functions Creating our own functions.
PASSING VALUE TO A FUNCTION # CALL BY VALUECALL BY VALUE # CALL BY REFERENCECALL BY REFERENCE STORAGE CLASS # AUTOAUTO # EXTERNALEXTERNAL # STATICSTATIC.
Functions Manesh T 2 Chapter Topics Define Function Standard (Predefined) Functions User-Defined Functions Parts of functions.
Lecture 22: Reviews for Exam 2. Functions Arrays Pointers Strings C Files.
UniMAP SemI-09/10EKT120: Computer Programming1 Week 5 – Functions (1)
UNIT - 4 FUNCTIONS AND POINTERS. FUNCTION Functions is a sub-program that contains one or more statements and it performs some task when called.
Example #include void main() { int a,b,c,n; clrscr(); printf("\nEnter the value of a,b:"); scanf("%d%d",&a,&b); printf("\nMENU"); printf("\n1.ADD\n2.SUB\n3.MULTIPLY\n0.EXIT");
FUNCTIONS A function is a set of instructions that can perform a specific task accordingly. A function is a program that performs a specific task according.
Definition of function Types of Function Built-in User Defined Catagories of Function No argument No return value Argument but No return value No argument.
Decision Making It is used to change the order of the program based on condition. Categories: – Sequential structure – Selection structure – Iteration.
CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 21 Thanks for Lecture Slides:
Strings Programming Applications. Strings in C C stores a string in a block of memory. The string is terminated by the \0 character:
CHAPTER 10 ARRAYS AND FUNCTIONS Prepared by: Lec. Ghader Kurdi.
Introduction to Computer Organization & Systems Topics: C arrays C pointers COMP Spring 2014 C Part IV.
Structured Programming Approach Module VIII - Additional C Data Types Arrays Prof: Muhammed Salman Shamsi.
FUNCTION Functions is a sub-program that contains one or more statements and it performs some task when called.
Chapter 8 Arrays. A First Book of ANSI C, Fourth Edition2 Introduction Atomic variable: variable whose value cannot be further subdivided into a built-in.
String Array (Multidimensional Arrays) 1. A string array is a multidimensional array of strings. It is declared in the following syntax: char variable_name[No_of_strings][size_of_each_string];
Review Pointer Pointer Variables Dynamic Memory Allocation Functions.
UniMAP SEM I - 09/10EKT 120 Computer Programming1 Lecture 8 – Arrays (2) & Strings.
UniMAP SEM I - 10/11EKT 120 Computer Programming1 Lecture 8 – Arrays (2) and Strings.
1 Pointers: Parameter Passing and Return. 2 Passing Pointers to a Function Pointers are often passed to a function as arguments  Allows data items within.
POINTERS IN C Pointer Basics, Pointer Arithmetic, Pointer to arrays and Pointer in functions.
Arrays C provides the option to the user to combine similar data types into a single entity It followed contiguous memory allocation.
1 Arrays and Pointers The name of an array is a pointer constant to the first element. Because the array’s name is a pointer constant, its value cannot.
Functions Chapter 5. Function A set of instructions that are designed to perform specific task. A complete and independent program. It is executed by.
Recursion It is a process of calling the same function itself again and again until some condition is satisfied. Syntax: func1() { ……….. func1(); }
UNIT - 3 ARRAYS AND STRINGS. Array An Array is a collection of similar data items, that are stored under a common name. Types –One-Dimensional array –Two-Dimensional.
Program Program is a collection of instructions that will perform some task.
Principles of Programming - NI Chapter 10: Character & String : In this chapter, you’ll learn about; Fundamentals of Strings and Characters The difference.
Pointers: Basics. 2 Address vs. Value Each memory cell has an address associated with it
DYNAMIC MEMORY ALLOCATION. Disadvantages of ARRAYS MEMORY ALLOCATION OF ARRAY IS STATIC: Less resource utilization. For example: If the maximum elements.
Explain Declaration,Initialization of Array Explain Types of Array One Dimensional,Two Dimensional and Multi Dimensional Array Explain Arrays.
MAHENDRAN. Session Objectives Explain Declaration,Initialization of Array Explain Types of Array One Dimensional,Two Dimensional and Multi Dimensional.
Chapter 2 Array and String. Array Definition of Array : An array is a sequence or collection of the related data items that share a common name. Purpose.
User-Written Functions
Chapter 4 Function and Structure.
FUNCTION Functions is a sub-program that contains one or more statements and it performs some task when called.
C Scope Rules and Arrays
Functions, Part 2 of 2 Topics Functions That Return a Value
UNIT 5 POINTERS AND FILES
C-language Lecture By B.S.S.Tejesh, S.Neeraja Asst.Prof.
User-Defined Functions
11/10/2018.
Formatted and Unformatted Input/Output Functions
Arrays C provides the option to the user to combine similar data types into a single entity It followed contiguous.
FUNCTIONS AND POINTERS
Chapter 2 Array and String Visit to more Learning Resources.
UNIT - 3 Noornilo Nafees.
Chapter 6: User-Defined Functions I
In C Programming Language
Arrays C provides the option to the user to combine similar data types into a single entity It followed contiguous.
Presentation transcript:

UNIT - 5 FUNCTIONS AND POINTERS

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

Types Functions User-Defined Functions Pre-Defined Functions

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()

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)

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.

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

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

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.

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.

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

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.

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.

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

Output Enter two number:3 4 Sum is:7

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.

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

Output Enter two number:2 4 Sum is:6

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

Output Enter two number:2 4 Sum is:6

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.

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

Output Enter two number:6 7 Sum is:13

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.

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

Output Enter two number:5 8 Sum is:13

Parameter Passing Methods Call by value Call by reference

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

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

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

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

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.

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

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

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

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

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

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

Example: Working of 3!

Tower of Honoi

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

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

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

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

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

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

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

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

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

Array initialization At compile time At run time

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

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

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

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

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

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

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

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

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

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

row 0 row 1 Col 0 Col 1

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

Output The value in x[0][0] is 1 The value in x[0][1] is 50 The value in x[1][0] is 2 The value in x[1][1] is 75

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

Output The value in x[0][0] is 1 The value in x[0][1] is 50 The value in x[1][0] is 2 The value in x[1][1] is 75 The value in x[2][0] is 3 The value in x[2][1] is 65

Matrix Addition #include 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;

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

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"); for(i=0;i<r1;i++) { for(j=0;j<c1;j++) printf("%d\t",c[i][j]); printf("\n"); } getch(); }

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

Matrix Multiplication #include 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;

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

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]; } for(i=0;i<r1;i++) { for(j=0;j<c2;j++) printf("%d\t",c[i][j]); printf("\n"); } getch(); }

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

Enter the size of matrix A:2 3 Enter the size of matrix B:3 2 Enter the elements of matrix A Enter the elements of matrix B

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

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

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

Output Enter the Number: 5 Enter the Values: The sum is: 15

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

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

Output a b c d

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.

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

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. syntax: strcpy(string1,string2) strcat() It is used to combine two strings. syntax: strcat(string1,string2)

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. syntax: strrev(string) strlwr(), strupr() It used to change the case of a string. syntax: strlwr(string) strupr(string)

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.

strncmp() – 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.

Example #include 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

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

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

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

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

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

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

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

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

Output: The string is :it

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

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"); getch(); } Output: Enter the string:abcba The String is a palindrome

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; ………. };

Example #include 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

Example #include 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

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; ……………………. };

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

Example #include struct stud { int regno; char name[10]; int m1; int m2; int m3; }; struct stud s; void main() { float tot,avg;

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

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

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

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

Output The value of y.a is10

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

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)

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

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

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; ………………… };

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

Example #include union stud { int a; char b[2]; }; void main() { union stud c;

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

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

Example #include struct student { int a; int b; char c; }s; union student1 { int a; int b; char c; }s1;

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

Structure & Union int int char 2 Byte 2Byte 1Byte 2 Byte structure int,int, char union

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

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

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

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

Output Enter the numbers:7 4 The Value is 11

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

fact.c 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

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

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

Example #include #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

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)

Example #include #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

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

Example #include #define a 3 #define sq a*a void main() { printf("The Value is %d",sq); getch(); } Output: The Value is 9

Conditional Inclusion It is used to include some conditional statements.

Example #include #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

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

Example: x=5 x Variable 1002 Address 5 Value

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

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;

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;

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

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

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

ay 5001 Variable Value Address

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

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

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

ax 5001 Variable Value Address b

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

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

Pointers and Functions Call by Value Call by Reference

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

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

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

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

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.

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

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

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

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;

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

ba[0] 8744 Variable Value Address

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

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

a[0] a[1]a[2] a[3] a[4] Array Value Address

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

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

Output The Sum is 15

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Example #include #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

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

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.m 2,&s.m3); tot=s.m1+s.m2+s.m3; avg=tot/3; } for(i=0;i<2;i++) printf("%d\t%s\t%f\t%f",s.regno,s.name,tot,avg); }

Enter the student regno,name,m1,m2,m3:100 aaa bbb bbb

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

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

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

Structure

Lab Exercise C Programs

Function-with arg & return #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); }

Output Enter two number:6 7 Sum is:13

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

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

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

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

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

Example: Working of 3!

Matrix Multiplication #include 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;

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

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]; } for(i=0;i<r1;i++) { for(j=0;j<c2;j++) printf("%d\t",c[i][j]); printf("\n"); } getch(); }

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

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

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 :

Lab Ex:9,Conversion of Celsius to Fahrenheit #include 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( ); }

Enter the value of c:35 The fahrenheit is :

Lab Ex:11,Arithmetic operations #include 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;

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

Output Enter the values of A and B:6 3 The values of A + B:9 The values of A - B:3 The values of A * B:18 The values of A / B:2

Lab.Ex13,Largest among 3 nos #include 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);

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

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

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

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"); getch(); } Output: Enter the string:abcba The String is a palindrome

Lab.Ex:14,Quadratic Equation #include 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;

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

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