List of Lab Exercises: Sno
List of Lab Exercises: Sno
List of Lab Exercises: Sno
1 2 3 4 5 5 6 7 8 9 10 11 12 13 14 15 16
Page No.
10 12 14 16 18 20 22 24 27 30 32 35 38 40 43 46 47 50 53 56
17 18 19 20 21 22 23 24 25 26 27 28 29 30
S No
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
Page No.
112 116 118 120 123 126 129 132 137 143 146 149 155 160 169 171 174 176 179 182 184
Experiment 1:
a)To evaluate algebraic exp(ax+b)/(ax-b) b)to Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y) c)to evaluate the algebraic exp aepower-rt d)to evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
3) FLOW CHART:
To evaluate algebraic exp (ax+b)/ (ax-b)
start
take a,b,x
a=5,b=4,x=3
R=(ax+b)/(ax-b)
display
stop
4) PROGRAM:
To evaluate algebraic exp(ax+b)/(ax-b) main() { int a,b,x; float s; clrscr(); printf("enter the values of a,b,x..."); scanf("%d%d%d",&a,&b,&x); s=(a*x+b)/(a*x-b); printf("the value of s=%f",s); }
5) Result:
Enter the values of a,b,x 1 3 2 The value of s=5
2) ALGORITHM:
Step1: start Step2: input x,y,v Step3: v=2.5*log(x)+cos(32*3.14/180)+mod(x*x-y*y)+sqrt(2*x*y) Step4: Result v Step 5: stop
3) FLOWCHART:
To Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y)
start
take x,y
x=1,y=1
R=2.5*logx+cos32+mod(x*x-y*y)+sqrt(2*x*y)
Display R
stop
4) PROGRAM: To Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y) #include<math.h> main() { float x,y,v; clrscr(); printf("enter x and y values"); scanf("%f,%f",&x,&y); v=2.5*log(x)+(cos(32*3.14/180))+mod(x*x-y*y)+sqrt(2*x*y); printf("the value of v=%f",v); }
5) Result:
Enter x and y values 10 20 The value of v=
c) 1) AIM: To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2 2) ALGORITHM:
Step1: start Step2: input x,s Step3:s=pow(x,s)+10*pow(x,4)+8*pow(x,3)+4*x+2 Step4: Result s Step 5: stop*/
3) FLOWCHART:
To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
start
take x
x=6
R==pow(x,s)+10*pow(x,4)+8*pow(x,3)+4*x+2
Display R
stop
4) PROGRAM:
To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2 #include<stdio.h> #include<math.h> main () { float x,s; printf("enter the values of x"); scanf("%f",&x); s=pow(x,5)+10*pow(x,4)+8*pow(x,3)+4*x+2; printf("the value of s=%f",s); }
5) Result:
Enter the values of x 1 The value of s = 25
3) FLOWCHART:
To evaluate the algebraic exp a epower-rt
start
take a,k,t
a=1,k=1,t=1
R=a*pow(e,-kt)
displayR
9
stop
10
4) PROGRAM:
To evaluate the algebraic exp aepower-rt #include<stdio.h> #include<math.h> main() { int a,k,t; float r; printf("enterthree values"); scanf("%d%d%d",&a,&k,&t); r=a*pow(e,-k*t); printf("result=%f"); getch(); }
5) Result:
Enter values 1 2 3 Result=1.000000
6) Questions:
i) What is an Expression? ii) What is the use of main( ) function? iii) What are preprocessors of C? iv) What is a variable?
7) Debugging:
1) undefined symbol a in function main( ) 2) r is assigned a value which is never used 3) redeclaration of c in function main( ) First you should declare a and use When you assigned a value to a variable, that must be used in the program You should declare any variable only one time
11
Experiment 2: evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c) 1) AIM: To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c) 2) ALGORITHM:
Step1:start Step2:input a,r,t,s Step3:s=a* pow(-r*t) Step4:Result s Step 5:stop*/
3) FLOWCHART:
To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c)
Start
take a,b,c,s,a
a=5,b=4,c=2
s=(a+b+c)/2
A=sqrt(s-a)(s-b)(s-c)
Display R
12
Stop
4) PROGRAM: To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c) #include<math.h> void main() { int a,b,c; float s,area; clrscr(); printf("enter the values of a,b,c"); scanf("%d%d%d",&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("the area of a trangle is =%f",area); getch(); }
5) Result:
enter the values of a,b,c 10 20 30 The area of a trangle is = 0.000000
6) Questions:
i) What is the use of sqrt( ) function? ii) Explain data types. iii) Explain I/O Statements. 7) Debugging: 1) Function sqrt( ) should have a prototype 2) Unterminated string or character constant 3) Function call missing ) in function main You should include math.h first, then you can use sqrt ( ) and other mathematical functions. You should end double quotation or single quotation properly You might be missed any special characters in that line.
13
3) FLOWCHART:
Program to swap two numbers
start
take a,b
a=1,b=10
a=a+b;b=a-b;a=a-b
Display a and b
14
stop
4) PROGRAM: Program to swap two numbers void main() { int a,b; clrscr(); printf("enter the values of a,b"); scanf("%d%d",&a,&b); a=a+b; b=a-b; a=a-b; printf("the values of a,b are: %d %d",a,b); getch(); }
5) Result:
Enter the values of a,b 10 2 The values of a,b are: 20 10
6) Questions:
i) What is the use of getch( ) function? ii) What is the use of specifications of the data types?
15
3) FLOWCHART:
To Find Greatest of Two numbers.
16
Start
Take a,b
C= (a>b)? a:b
Display c
Stop
4) PROGRAM:
Prog:To find greatest of 2 numbers void main() { int a,b,c; clrscr(); printf("enter the values of a,b"); scanf("%d%d",&a,&b); c=(a>b)?a:b; printf("the biggest no is %d",c); getch(); }
5) Result:
Enter the values of a,b 5
17
6) Questions:
1) What is an operators? 2) How many operators are there in C and List out them? 3) What is the difference between logical and conditional operators?
2) ALGORITHM:
Step1:start Step2:input a,b,c Step3:if(a>b) &&(a>c) Step4:display a is grater Step 5:else Step6:if(b>c)
18
3) FLOWCHART:
To find greatest among 3 numbers
Start
Take a,b,c
If (a>b)&&(a> c) Display a
If (b>c)
Display c
Display b
19
Stop
4) PROGRAM:
Program to find greatest among 3 numbers void main() { int a,b,c; clrscr(); printf("enter the values of a,b and c"); scanf("%d%d%d",&a,&b,&c); if(a>b && a>c) printf("a is greatest of %d %d %d", a,b,c); else if(b>c) printf("b is greatest of %d %d %d",a,b,c); else printf("c is gratest of %d %d %d",a,b,c); getch(); }
5) Result:
Enter the values of a,b and c 10 30 20 30 is greatest of 10 30 20
6) Questions:
i) What are the conditional statements? ii) How many conditional statements are there in C? iii) What is the difference between conditional and multi-conditional statements?
20
Experiment 5: Program to find Greatest of 3 numbers to print the given no in ascending order. 1) AIM: Program to find Greatest of 3 numbers to print the given no in
ascending order.
2) ALGORITHM:
Step1:start Step2:input a,b,c Step3:if(a>b) &&(a>c) Step4:if(b>c) Step5:display a,b,c Step6:else Step7:display a,c,b Step8:else if(b<c && b<a) Step9:if(c<a) Step10:print b,c,a Step11:else Step12:print b,a,c Step13:else if(c<a && c<b) Step14:if(a<b) Step15:print c,a,b Step16:else Step17:print c,b,a Step18:stop*/
21
3) FLOWCHART:
To Find greatest of Three no to print the given no in ascending order
Start
Take a,b,c
If (b>c)
Display a,b,c
Display a,c,b
Display b,c,a
Display b,a,c
If ( a<b)
Stop
Display c,a,b
Display c,b,a
22
4) PROGRAM: Program to find Gratest of 3 numbers to print the given no in ascending order void main() { int a,b,c; clrscr(); printf("enter the values of a,b and c"); scanf("%d%d%d",&a,&b,&c); if(a<b && a<c) { if(b<c) { printf(" %d%d%d", a,b,c); } else if(b>c) printf(" %d%d%d",a,c,b); } else if(b<c && b<a) { if(c<a) printf(" %d%d%d",b,c,a); else printf("%d%d%d",b,a,c); } else if(b<a) printf("%d%d%d",c,b,a); else printf(%d%d%d",c,a,b); } }
5) Result:
Enter the values of a,b and c 6 4
23
5 456
Experiment 6: Write a Program to perform the arithmetic expression using switch statement
1) AIM: Program to perform the arithmetic expression using switch statement 2) ALGORITHM:
Step1:start Step2:input a,b Step3:switch(result) Step4:case +:printnum of a& b is a+b Step5: case -:printnum of a& b is a-b Step6: case *:printnum of a& b is a*b Step7: case /:printnum of a& b is a/b Step8: case %:printnum of a& b is a%b Step9: default: invalid option Step10: stop
24
3) PROGRAM: Program to perform the arithmetic expression using switch statement #include<stdio.h> #include<conio.h> void main() { int a,b; int op; clrscr(); printf(" 1.addition\n 2.subtraction\n 3.multiplication\n 4.division\n"); printf("enter the values of a & b"); scanf("%d%d",&a,&b); printf("enter your choice : "); scanf("%d",&op); switch(op) { case 1 :printf("sum of %d and %d=%d",a,b,a+b); break; case 2 :printf("difference of %d and %d=%d",a,b,a-b); break; case 3 :printf("multiplication of %d and %d=%d",a,b,a*b); break; case 4 :printf("Divisionn of two numbers is %d=",a/b); break; default : printf(" Enter Your Correct Choice."); break; } getch(); }
5) Result:
1. Addition 2. Substraction
25
3. Multiplication 4. Division Enter your choice : 1 Enter a and b values 10 20 Sum of 10 and 20 = 30
26
27
3) FLOWCHART:
Program to find the factorial of a given number Start
Take n
F=i=1
If (i<=n )
f=f*i; i=i+1
Display f
Stop
28
4) PROGRAM:
Program to find the factorial of a given number void main() { int n,i,f; f=i=1; clrscr(); printf("enter a number"); scanf("%d",&n); while(i<=n) { f*=i; i++; } printf("the factorial of %d is %d",n,f); getch(); }
5) Result:
Enter a number 5 The factorial of 5 is 120
6) Questions;
i) ii) iii) What are the Loops (Iterative Statements)? What are the Differences between while( ) and do..while( )? Explain about for( ) loop.
29
Experiment 8:
number
30
3) FLOWCHART:
Program to generate prime number till nth number. Start
Take n,i,j
i=1,
if i<n
j=1, fact=0
If j<=n
If i%j=0
If fact=2
31
Print i, j++
Print i
Stop
4) PROGRAM:
Program to generate prime number till nth number void main() { int n,i,fact,j; printf("enter the range"); scanf("%d",&n); printf(Prime numbers are\n); for(i=1;i<=n;i++) { fact=0; for(j=1;j<=n;j++) { if(i%j==0) fact++; if(f==2) printf("%d ,i); } getch(); }
5) Result:
Enter the range 10 Prime numbers are 3 5 7
32
2) Algorithm:
Step1: start Step2: read n Step3: i=0,sum=0 Step4: perform from step 5 to step 6 until i<=n Step5: i++ start Step6:sum+=i; Step7: write sum Step8: stop
Read n
3) Flow chart:
i=0;sum=0
While(i<=n)
i++
F T
Sum+=i
Write sum
33
stop
4) Program:
#include<stdio.h> #include<conio.h> main() { int n,i=0,sum=0; clrscr( ); printf(Enter Limit : ); scanf(%d,&n); while(i<=n) { i++; sum+=i; } printf(Sum of %d natural numbers = %d,n,sum); getch(); }
5) Result:
Enter Limit : 10 Sum of 10 natural numbers = 55
34
Experiment 10:
step3:
35
3) FLOWCHART:
Program to find total of even integers
Start
i=0
If i<=20
If (A[i] %2==0)
Sum=sum+a[i],i++
I++
Display Sum
Stop
36
4) PROGRAM: Program to find total of even integers #include<stdio.h> main() { int a[20],i,sum=0; printf("enter5 integrs"); for(i=0;i<5;i++) scanf("%d",&a[i]); for(i=0;i<5;i++) { if(a[i]==0) sum=sum+a[i]; } prinf("sum =%d",sum); getch(); }
5) Result:
Entger 5 integers 24682 Sum = 22
37
Experiment 11: Program to find total of odd integers 1) AIM: Program to find total of odd integers 2) ALGORITHM:
step1: start step2: for(i=0;i<20;i++) { if(a[i]%2==1) sum=sum+a[i]; } step3:stop
38
3) FLOWCHART:
Program to find total of odd integers
Start
i=0
If i<=20
If (A[i] %2==1)
Sum=sum+a[i],i++
I++
Display Sum
Stop
39
4) PROGRAM:
Program to find total of odd integers #include<stdio.h> main() { int a[20],i,sum=0; printf("enter 5 integrs"); for(i=0;i<5;i++) scanf("%d",&a[i]); for(i=0;i<5;i++) { if(a[i]==1) sum=sum+a[i]; } prinf("sum =%d",sum); getch(); } Enter 5 integers 12345 Sum=9
40
41
Experiment 12:
5) Result:
Enter any number 10 Sum = 30
42
43
Start
i=0
If i<=20
If (A[i] %2==1)
Sum=sum+a[i],i++
Stop
i++
Display Sum
44
4) PROGRAM: Program to find sum of all odd integers void main() { int i,n,sum; sum=0; clrscr(); printf("enter any number"); scanf("%d",&n); for(i=1;i<=n;i++) { if(i%2!=0) sum=sum+i; } printf("total no of even integer is %d",sum); }
5) Result:
Enter any number 10 Sum = 25
45
46
47
3) FLOWCHART:
Program to print product of two matrices.
Start
I=0,j=0,k=0
If i<=20
if (i<n
if j<n
Stop
For (k=0;j<k.k+ +)
k++ j++
C[i][j]=c[i][j]+a[k][j]*b[i][k]
i++
Display c[i][j]
48
49
4) PROGRAM:
Program to print product of two matrices #include<stdio.h> void main() { int i,j,k,a[3][3],b[3][2],c[3][2]; printf("enter elements of matrix a"); for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } printf("enter elements of matrix b"); for(i=0;i<3;i++) { for(j=0;j<2;j++) scanf("%d",&b[i][j]); } for(i=0;i<3;i++) { for(j=0;j<3;j++) { c[i][j]=0; for(k=0;k<3;k++) { c[i][j]=c[i][j]+a[i][k]*b[k][j]; printf("\t%d",c[i][j]); } printf("\n"); } } } }
5) Result:
Enter the elements of matrix a 124521452 Enter the elements of matrix b 124521452 10 18 28 50 18 7
50
40
45
14
51
3) FLOWCHART:
Program to print Fibonacci series
Start
Take I, x, f, f1, f2
While (i<=n)
I++,F1=f2;f2=f
F=f+f2
Stop
F=f+f2
Display F
52
4) PROGRAM:
Program to print Fibonacci series void main() { int i,n,f,f1,f2; printf("enter the range"); scanf("%d",&n); f=0; f1=1; f2=1; do { i++; printf("%d\n",f); f1=f2; f2=f; f=f1+f2; } while(i<=n); }
5) Result:
Enter the range 9 0 1 1 2 3 5 8 13 21
53
2) ALGORITHM:
step1:start step2:take I,j and n step3:for(i=1;i<n;i++) for(j=0;j<i;j++) { printf(%d,i); printf(\n); } step4: stop
54
3) FLOWCHART:
Program to print the following format 1 2 3 4 2 3 4 3 4 4
If i<n Take I,j,n,i=1,j=1 Start
If j<n Stop
Display i
Display \n
J++
55
I++
4) PROGRAM:
Program to print the following format 1 2 3 4 2 3 4 3 4 4
#include<stdio.h> main() { int i,j,n; printf(enter n value); scanf(%d,&n); for(i=0;i<=n;i++) { for(j=0;j<i;j++) printf(%d,i); printf(\n); } printf(\n);
56
5) Result:
1 2 3 4 2 3 4 3 4 4
step1: start step2: take three integers i,j,n step3: repeat step4 to step6 for i=1,i<=n,i++ step4: repeat step5 for j=1,j<=n,j++ step5: if j>=1 then Display I and a space Else Display space step6: transfer cursor to meet line by printing \n
57
step7: stop
3) FLOWCHART:
Program to print the following format 1 2 3 4 4 3 4 2 3 4
Start
Take i,j,n
For (i=1;i<=n;i+ +)
If (j>i)
58
Display i
Display \n
Display \n
4) PROGRAM:
Program to print the following format 1 2 2 3 4 4 3 3 4 4
#include<stdio.h> main() { int i,j=0,n; printf(enter n value); scanf(%d,&n); for(i=0;i<=n;i++) { if(j>=i) printf(%d\t,i);
59
5) Result:
1 2 2 3 4 4 3 3 4 4
Experiment 16.3 :
1) AIM: Program to print the following format 2) ALGORITHM:
1 2 2 3 3 3
step1: start step2: take three integers i,j,k step3: repeat step2 to step8 for i=1,i<=n,i++ step4: repeat step3 to step4 for k=1,k<=n-i,k++ step5: display blank space step6: repeat step 5 to step7 for j=1,j<=I,j++ step7: display blank space
60
Start
Take i,j,n,k=0,j=1
3) FLOWCHART:
Program to print the following format 1 2 2 3 3 3
K<n If I<n
Display \n
If J<=i
Display\n
61
4) PROGRAM:
Program to print the following format 1 2 2 3 3 3
62
5) Result:
1 2 2 3 3 3
63
step5: display value of k step6: increment k by 1 step7: transfer cursor to next line by printing \n step8: stop
FLOWCHART:
Program to print the following format 1 2 3 4 5 6
Start
64
Take I=0,j=0,k
K=0
If I<=n
if j<=n
K=k+1
Display K
Display \n J++
Stop
I++
PROGRAM:
Program to print the following format 1 2 3 4 5 6
#include<stdio.h> main()
65
5) Result:
1 23 4 5 6
Experiment 17:
2) ALGORITHM:
step1: take a character array a, integers r,s,I,j and n step2: read the value of n step3: for(i=0;i<n;i++) Enter rollno,name,,,,,,
66
Read these and enter 5 subject marks s[i][5]=0; for(j=0;j<5;j++) { scanf(%d,s[i][j]); s[i][5]=s[i][5]+s[i][j]; } step4:display n[i],r[i],s[i][j] step5:stop
Start
If I<n
3) FLOWCHART:
Program to read num of student data: r[i] Display n[i],
J=0
If I<n
Display s[i][j]
If I<n
67
J++
68
void main() { char n[20][10]; int i,j,r[20],s[20][6]; printf("enter n value"); scanf("%d",&n); for(i=0;i<n;i++) { printf("enter name,rollno,...."); scanf("%s%d",&n[i],&r[i]); printf("enter 5 subject marks"); s[i][5]=0; for(j=0;j<5;j++) { scanf("%d",s[i][j]); s[i][5]=s[i][5]+s[i][j]; } } printf("the data entered is \n"); for(i=0;i<n;i++) { printf("%s\t%d\t",n[i],r[i]); for(j=0;j<5;j++) printf("%d\t",s[i][j]); } getch(); }
5) Result:
Enter name,rollno,.Eswar 20 Enter 5 subject marks 10 50 34 06 42 The data entered is Eswar 20 10 50
34
06
42
Experiment 18.1 :
Experiment: Write a program to find factorial of a num using 3 types of functons 1) AIM: Program to find factorial of a given number
69
2) ALGORITHM: step1:start Step2:take a number n Step3:read a number n For(i=0;i<n;i++) Factorial=fact*I; Display num Step4:stop
3) FLOWCHART:
Program to find factorial of a given number: Start
Take n
F=i=1
If (i<=n )
4) PROGRAM:
Display f
70
Program to find factorial of a given number #include<stdio.h> #include<math.h> void main() { clrscr(); printf("enter a number"); fact(); getch(); } fact() { int i,fact=1,n; scanf("%d",&n); for(i=1;i<=n;i++) { fact=fact*i; } printf("\nfactorial of a given no is: %d ",fact); return fact; } 5) Result:
Enter a number 5 Factorial of a given no is: 120
Experiment 18.2 :
71
72
3) FLOWCHART:
program to find factorial of a given number
Start
Take n
Fact(n)
F=i=1
If (i<=n )
73
4) PROGRAM: program to find factorial of a given number #include<stdio.h> #include<math.h> void main() { clrscr(); printf("enter a number"); fact(); getch(); } fact() { int i,fact=1,n; scanf("%d",&n); for(i=1;i<=n;i++) { fact=fact*i; } printf("\nfactorial of a given no is: %d ",fact); return fact; } 5) Result:
Enter a number 5 Factorial of a given no is: 120
74
1) AIM: Program on function to scan a character string and convert lower case
character to upper case
2) ALGORITHM:
step1: start Step2: take a string a function of return value data type is void str upper Step3: read a string While (s[i]! =\0) { if((s[i]>=a) &&(s[i]<=z)) s[i]=s[i]-32; i++; } display changed string. Step4: stop
75
3) FLOWCHART:
Program on function to scan a character string and convert lower case character to upper case
Start
Take str,I,j,
While S[i]!=\0
S[i]=s[i]-32
Stop
I++
76
4) PROGRAM: Program on function to scan a character string and convert lower case character to upper case #include<stdio.h> #include<conio.h> void main() { char str; printf("enter a string"); scanf("%s",str); to_str_upper(char[]); printf("changed to %s",str); } void to_str_upper(char[]) { int i=0; while(s[i]!='\0') { if((s[i]>='a') && (s[i]>='z')) s[i]=s[i]-32; i++; } } } 5) Result:
Enter a string gnec changed to GNEC
77
Experiment 20: Write a program to extract a string 1) AIM: A program to extract a portion of character string and print extracted string 2) ALGORITHM:
step1: start Step2: take a a and r characters arrays and I,j,m,n be untegers Step3: enter the values of m,n J=0; For(i=n-1;i<m+n-1;i++) { r[j]=s[i]; j++; } step4: display the extract part of string Step5:stop
78
3) FLOWCHART:
A program to extract a portion of character string and print extracted string
Start
Take s[30],r[30],j=0,n
I=n-1
If I<m+nm1 r[j]=s[i]
79
4) PROGRAM:
Program to extract a portion of character string and print extracted string #include<stdio.h> void main() { char s[30],r[30]; int i,j,m,n; clrscr(); printf("enter a string"); gets(s); printf("enter the values of m n"); scanf("%d%d",&m,&n); j=0; for(i=n-1;i<m+n-1;i++) { r[j]=s[i]; j++; } printf("the extract part of string %s: ",r); getch(); } 5) Result: Enter a string
80
Gurunanak Enter the values of m,n 35 The extract part of string: run
Experiment 21: Write a program to sort 5 city names in alphabetical order 1) AIM: Program to read five cities and sort them and print sorted list of citied in
alphabetical order
2) ALGORITHM:
step1:start Step2:enter 5 city names Step3:take I and j loop variables For(i=65;i<122;i++) { for(j=0;j<5;j++) { if(city[j][0]==i) printf(\n%s,city[j]); } } Step4:stop
81
Start
I=0
3) FLOWCHART:
A program to read five cities and sort them and Print sorted list of citied in alphabetical order
Enter City Names If (i<5)
I++
if I<122
J=0
if j<5
If (City[j] [0]==i)
Stop
Display city[j]
82
J++]
I++
4) PROGRAM: A program to read five cities and sort them and print sorted list of citied in alphabetical order #include<stdio.h> #include<conio.h> void main() { ch city[5][20]; int I,j; clrscr(); printf("enter the names of cities...\n\n"); for(i=0;i<5;i++) scanf("%s",&city[i]); printf("sorted list of cities...\n\n"); for(i=65;i<122;i++) { for(j=0;j<5;j++) { if(city[j][0]==i) printf("\n%s",city[j]); } } }
83
5) Result:
Enter the names of cities Hyd Chennai Bombay goa vizag Sorted list of cities Bombay Chennai Goa Hyd vizag
Experiment 22: Write a program to find the factorial of a number using recursion 1) AIM: Program to find the factorial of a number using recursion 2) ALGORITHM:
step1: start Step2: enter f and n Step3: read a number n F=factorial (n); Step4: inside the functional(x) define a local variable x If(x==l) Return (l); Else Fact=x*factorial(x-l); Return(fact); Step5: stop
84
Start
3) FLOWCHART:
To find the factorial of a number using recursion Take n
Fact(n)
Display f
F=i=1
If (i<=n ) Stop 85
f=f*i; i=i+1
4) PROGRAM: To find the factorial of a number using recursion #include<stdio.h> main() { int f,n; clrscr(); printf("enter n"); scanf("%d",&n); f=factorial(n); printf("%d",f); getch();
86
5) Result: Enter n 4 24
Experiment 23: program to print address of a variable 1) Aim: program to print address of a variable 2) Algorithm:
Step1: Step2: Step3: Step4: start declare a print &a stop
3) Flowchart:
start
87
88
4) Program:
#include<stdio.h> #include<conio.h> main( ) { int a; clrscr(); printf(Address of a = %u,&a); getch(); }
5) Result:
Address of a =64453
89
2) ALGORITHM:
step1: start step2: take a,b,x,y,z and two pointers variables *p1,*p2 step3: assign values to these variables p1=&a; p2=&b; x=*p1*p2-6; y=(4*-*p2)/(*p1+10); display x and y step4:*p2=*p2+3 *p1=*p2-5; z=*p1*p2-6; display a,b and z step5: stop
90
3) FLOWCHART: A program to illustrate accessing the value of variable using pointers using arithmetic operations
Start
a=12,b=4
P1=&a,p2=&b
X=*p1*p2-6
Y=(4-*p2)/*p1+10
Display p1,p2,a,b,x,y
*p2=*p2+3,*p1=*p2-5
Z=*p1*p2-6
Display a,b,z
Stop
91
4) PROGRAM: A program to illustrate accessing the value of variable using pointers using arithmetic operations #include<stdio.h> main() { int a,b,*p1,*p2,x,y,z; clrscr(); a=12,b=4; p1=&a; p2=&b; x=*p1**p2-6; y=(4-*p2)**p1+10; printf("addressof a=%d\n",p1); printf("addressof b=%d\n",p2); printf("a=%d,b=%d\n",a,b); printf("x=%d,y=%d\n",x,y); *p2=*p2+3; *p1=*p2-5; z=*p1**p2-6; printf("a=%d,b=%d\n",a,b); printf("z=%d\n",z); getch(); } 5) Result:
92
93
Experiment 24: A program to access a variable using pointers 1) AIM: Program to illustrate the address of a variable using various methods 2) ALGORITHM:
step1: start step2: take x,p,q and a character a step3: display a,x,p,q step5: stop
3) FLOWCHART:
A program to illustrate the address of a variable using various methods
Start
a=a,x=125,p=10.25 , q=18.76
Display a, &a
Display x, &x
Display p, &p
Display q, &q
Z=*p1*p2-6
Stop
94
4) PROGRAM:
A program to illustrate the address of a variable using various methds #include<stdio.h> main() { char a; int x; float p,q; clrscr(); a='a'; x=125; p=10.25,q=18.76; printf("%c is stored at address %u\n",a,&a); printf("%d is stored at address %u\n",x,&x); printf("%f is stored at address %u\n",p,&p); printf("%f is stored at address %u\n",q,&q); getch(); }
5) Result: a is stored at address 65525 125 is stored at address 65522 10.250000 is stored at address 65518
95
Experiment 25: Program to print the elements of array using pointers 1) AIM: Program to print the elements of array using pointers 2) ALGORITHM:
step1: start step2: take an array a of 5 elementsand a pointer p step3: print all the elments of array step5: stop
3) FLOWCHART:
A program to print the elements of array using pointers
Start
If I<5
Display *(p+i)
Display (p+i)
I++
Stop
96
4) PROGRAM:
Program to print the elements of array using pointers #include<stdio.h> main() { int a[5]={5,4,6,8,9}; int *p=&a[0]; int i; clrscr(); for(i=0;i<5;i++) printf("%d",*(p+i)); for(i=0;i<5;i++) printf(" %u\n",(p+i)); getch(); }
5) Result:
12345 12345
97
Experiment 26: Program to implement call by references 1) AIM: Program to implement call by references 2) ALGORITHM:
step1: start step2: take a, b, c step3: take addition as a function and store the address of a and b as function and store the address of a and b as arguments in it step5: take x and y as formal variables store in z step6: return z step7: stop
98
3) FLOWCHART:
A program to implement call by references
Start
Take a=10,b=20
C=add (&a,&b)
99
4) PROGRAM:
A program to implement call by refers #include<stdio.h> main() { int a=10,b=20,c; clrscr(); c=add(&a,&b); printf("%d",c); getch(); } add(int *x,int *y) { int z; z=*x+*y; return(z);
100
5) Result:
30
Experiment 27: Program to find greatest of numbers functions and pointers 1) AIM: Program to find greatest of numbers functions and pointers 2) ALGORITHM:
step1: start step2: take an array a[20] andthree integers c,n,gx,p,q and a character a step3: accept value of n from the user display a,x,p,q step5: repeat step 4 for i=0,i<n,i++ step6: accept value for user and store at a+i step7: goto step a & send a and n as arguments step8: display value return from step2 step9: stop
101
Start
Take a[10],i=0,n,l
3) FLOWCHART:
A program to find greatest of numbers functions and pointers
Read a+I
If I<n
I++
L=max(a,n)
Max(int *arr,int s)
Display L
I=o Stop
If I<n
102
I++
Return (max)
4) PROGRAM:
A program to find greatest of numbers functions and pointers #include<stdio.h> main() { int a[20],i,n,l; clrscr(); printf("enterthe no.ofelements: "); scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); l=max(a,n); printf("the largest num is: %d",l); getch();
103
} int max(int*arr,int s) { int max,i; for(i=0;i<;i++) if(i==0||max<*(arr+i)) max=*(arr+i); return (max); } 5) Result: Enter number of elements 3 564 The largest number is 6
Experiment 28: A program to print the elements of a structure using pointers 1) AIM: Program to print the elements of a structure using pointers 2) ALGORITHM:
step1: start step2: take a character array name, a number and price in structure step3: in main take a struct variable product and a pointer for(*ptr=product;ptr<product+3;ptr++) read the value by using array operator ptr->name,ptr->no,ptr->price step4: display name,no,price step5: stop
Display (p+i)
104
Start
Take product[3],*ptr
Ptr=product
while Ptr<product +3
105
Ptr ++ Start
4) PROGRAM:
A program to print the elements of a structure using pointers #include<stdio.h> struct invest {char name[20]; int number; float price;}; main() { struct invest product[3],*ptr; clrscr(); printf("input\n\n");
106
107
FLOWCHART:
A program to display student information by initializing structures
Start
Struct Student
Stop
108
PROGRAM:
A program to display student information by initializing structures #include<stdio.h> struct student { char name[10]; int rollno; int age; }; main() { static struct student s1; clrscr(); printf("enter the name,rollno,age"); scanf("%s%d%d\n",&s1.name,&s1.rollno,&s1.age); printf("%s %d %d",s1.name,s1.rollno,s1.age); getch(); }
5) Result:
Ente name, rollno,age Ravi 11 25 Ravi 11 25
109
Experiment 30: Program to find the total no. of marks AIM: Program to find the total no. of marks ALGORITHM:
step1: take name, roll no and total inside the structure step2: enter the marks of five subjects for(i=0;i<n;i++) printf("enter s[%d] student marks" ,i); s[i].total=0; for(j=0;j<5;j++) read the value of s[i].subject[j] s[i].total=s[i].total+s[i].subject[j]; step3: display s[i].total step4: stop
110
Start
Struct student s
FLOWCHART:
A program to find the total no. of marks
Enter Marks of Five Subjects, I=0
If I<n
S[i].total=0
J=0
If j<5
S[i]=s[i].total+s[i].subject[j]
J++
Display Total
I++
111
Start
PROGRAM:
A program to find the total no. of marks #include<stdio.h> struct student { char name[10]; int rollno; int subject[5],total; }; main ( ) { static struct student s[100]; int n,i,j; clrscr(); printf("enter the no.of students"); scanf("%d",&n); printf("enter the marks of fivesubjects"); for(i=0;i<n;i++) { printf("enter s[%d] student marks",i); s[i].total=0; for(j=0;j<5;j++)
112
5) Result:
enter the no.of students2 enter the marks of fivesubjectsenter s[0] student marks1 2 3 4 5 15enter s[1] student marks12 32 14 15 65 138
113
Experiment 31: Program to find the salary of employee and salary details 1) AIM: Program to find the salary of employee and salary details 2) ALGORITHM:
step1: take a character array of name, an id inside the structure step2: take another structure of inside the structure name that salary take, basic, pf, hra, da, gross step3: enter the name, id of an employee and read these step4: use dot operator to access these variables step5: display gross salary step6: stop
114
115
3) FLOWCHART:
A program to find the salary of employee and salary details
Start
Struct employee e1
Struct salary s1
Stop
116
4) PROGRAM:
A program to find the salary of employee and salary details #include<stdio.h> struct employee { char name[10]; int id; struct salary { int basic,pf; float hra,ta,da,gross; }s1; }e1; main() { printf("enter name & id of emp"); scanf("%s%d",&e1.name,&e1.id); printf("enter salary of emp"); scanf("%d%f%f%d",&e1.s1.basic,&e1.s1.hra,&e1.s1.da,&e1.s1.pf); e1.s1.hra=15% * basic; e1.s1.da=45%*basic; e1.s1.gross=e1.s1.basic+e1.s1.hra+e1.s1.da+-e1.s1.pf; printf("%s\n%d",e1.name,e1.s1.gross); printf("\n%d\n%f\n%d\n%f\n",e1.s1.basic,e1.s1.hra,e1.s1.da,e1.s1.pf,e1.s1.gross); }
117
5) Result:
Enter name and id of emp Eswar 101 Enter salary of Emp 5000 Gross salary : 8000
118
2) ALGORITHM:
step1: take a structure ex2 step2: inside the structure declare 6 integers step3: declare structureex2 as s1 step4: declarestruture ex2 as s2,ex2 as fun(); step5: display the message enter the marks step6: take value of the subjects from the user step7: store the return value in s2.total step8: print the value of s2.total step9: stop
119
3) PROGRAM:
A program to pass structure as arguments to function And calculate total marks of 5 students #include<stdio.h> struct ex2 { int m1,m2,m3,m4,m5,total; }; main() { struct ex2 s1; struct ex2 s2; struct ex2 fun(); printf("enter the marks"); scanf("%d%d%d%d%d",&s1.m1,&s1.m2,&s1.m3,&s1.m4,&s1.m5); s2=fun(s3); printf("%d",s1.total); } struct ex2 fun(s3) struct ex2 s3; { s3.total=s3.m1+s3.m2+s3.m3+s3.m4+s3.m5; return(s3); }
4) Result:
Enter the marks
120
10 20 30 40 50 150
1) AIM: Program to display college address using pointers and structures 2) ALGORITHM:
step1: take name, location and city for the college step2: take a pointer variable & address of the college step3: p->name={''gnec''} p->location={"ibrahimpatnam"} p->city={"rr dist"} step4: display p->name,p->location,p->city step5: stop
121
3) PROGRAM:
A program to display college address using pointers and structures #include<stdio.h> struct college address { char name[20],location[20],city[20]; }; main() { struct college address add,*ptr; p=&add; p->name={"gnec"}; p->location={"ibrahimpatnam"}; p->city={"rr dist"}; printf("%s%s%s",p->name,p->location,p->city); }
4) Result:
Gnec ibrahimpatnam rr dist
122
Experiment 34:
1) AIM: Program to write data file and read data from file 2) ALGORITHM:
step1: start step2: take a character ch and define a file pointer f2 step3: open a file data.dat for writing step4: while ((ch=getch()!=eof) read a character ch step5: close the file data.dat step6: open the same file for reading while((ch=get(f2)!=EOF) display charecter on monitor step7: close the data.dat step8:stop
123
Start
FILE *f2
3) FLOWCHART:
Programs to write data file and read data from file
Putc(ch,f2)
Close (f2)
Close (f2)
124
Stop
4) PROGRAM:
A program to write data file and read data from file #include<stdio.h> main() { charch; FILE *f2; f2=fopen("data.dat","w"); while((ch=getchar())!=EOF) putc(ch,f2); fclose(f2); f2=fopen("data.dat","r"); while((ch=getc(f2))!=EOF) putchar(ch); fclose(f2); }
5) Result:
125
Gurunanak Engineering College, Ibrahimpatnam, RR Dist. Gurunanak Engineering College, Ibrahimpatnam, RR Dist.
Experiment 35:
2) ALGORITHM:
step1: start
Program to write integer data into file and read it from file
1) AIM: Program to write integer data into file and read it from file
step2: take a number and define a file pointer step3: open a file data.dat for writing step4: read on integer and also read aninter into file step5: close the file data.dat step6: open the same file for reading display an integer step7: stop
126
Start
FILE *f2
3) FLOWCHART:
A program to write integer data into file and read it from file
Read num
Putw( num,f2)
Close (f2)
Num=getw(f2)
Display Num
Close (f2)
127
Stop
4) PROGRAM:
A program to write integer data into file and read it from file #include<stdio.h> main() { int num; FILE *f2; f2=fopen("data.int","w"); scanf("%d",&num); putw(num,f2); fclose(f2); f2=fopen("data.int","r"); num=getw(f2);
128
printf("%d",num); fclose(f2); }
5) Result:
12 12
Experiment 36: Program to write product details 1) AIM: Program to write product details 2) ALGORITHM:
step1: start step2: take a charecter array c step3: take three integers p,q,b step4: define a file pointer fp step5: open a file data.dat for writing step6: accept c from user and p,q step7: write string in c andvalues ofp,q into file step8: close the file data.dat step9: open the same file for reading
129
step10: evaluate p*q and store in b display c,p,q,b to the user step11: closethe data.dat step8"stop
3) PROGRAM:
A program to write product details #include<stdio.h> main() { char c[20]; int p,q,b; FILE *f2; f2=fopen("data.dat","w");
130
5) Result:
Enter item name, price, quality Rice 25 1 Rice 25 1 25
Start
FILE *f2
FLOCHART:
b=p*q
Display c,p,q.b
Close (f2)
131
Stop
Experiment 37: Program to Use command line arguments in files 1) AIM: Program to Use command line arguments in files 2) ALGORITHM:
step1: start step2: take argc,argv in main function an array of word and i step3: define a file pointer step4: open a file command.dat for writing for(i=0;i<argc;i++) Display argv[i]
132
close the file step6:open the same file for reading for(i=1;i>argc;i++) display word step7: close the file step8: stop
F2=Open data file to write Start
FILE *f2
I=0
If I<argc
Close (f2)
I=0
3) FLOWCHART:
Program to use command line arguments in files
If I<argc
Close (f2)
133
Stop
4) PROGRAM:
Program to use command line arguments in files #include<stdio.h> main(argc,argv) { char word[10],*argv[];
134
int i,argc; FILE *f2; f2=fopen("command.dat","w"); for(i=1;i<argc;i++) fprintf(fp,"%s",argv[i]); fclose(fp); f2=fopen("command.dat","r"); for(i=1;i<argc;i++) { fscanf(fp,"%s",word); } fclose(fp); }
Experiment 38: Program to implement Stack operations using arrays 1) AIM: Program to implement Stack operations using arrays 2) ALGORITHM:
1. push(s,top,x): step1: start
135
step2:(check for stack overflow) if(top>=max) display "stack overflow" return step3:[increment top pointer] top++ step4:[increment an element in thestack] s[top] <- x step5:[finished] return 2.pop(s,top) step1:(check for stack underflow) if(top==0) display() "stack underflow" step2:[decrement top operator] top<- top-1 step3:[delete an element from the stack] return (s[top+1])
3) PROGRAM:
Stack operations using arrays
136
#include<stdio.h> #define max 10 void push(); void pop(); void display(); int s[max]; int top=0; void main() { char ch; int choice; do { printf("enter choice of operation"); printf("1.push(),2.pop(),3.display()"); scanf("%d",&choice); switch(choice) { case1: push(); break; case2: pop();
137
break; default: printf("invalid option"); } printf("do u wantto continue y/n"); fflush(stdin); scanf("%c",&ch); } while(ch=='y'||ch=='y') } void push() { int item; if(top>=max) printf("stackisfull"); else { printf("enter any item"); scanf("%d",&item); top++; s[top]=item; } } void pop()
{ int item;
138
else { item=s[top]; printf("the related elemnt is %d",item); top--; } } void display() { int item; int i; if(top==0) printf("\n stack is empty no element isdisplayed"); else { printf("\n%d\n",s[i]); printf("\n----\n"); } }
139
5) Result:
enter choice of operation1.push(),2.pop(),3.display()1 enter any item3 do u wantto continue y/ny enter choice of operation1.push(),2.pop(),3.display()1 enter any item4 do u wantto continue y/ny enter choice of operation1.push(),2.pop(),3.display()3
15150
140
Experiment 39: Program to implement Queue operations using arrays 1) AIM: Program to implement Queue operations using arrays 2) ALGORITHM:
step1:start step2:(resetrearpointer) if r=n then r<-1 else r<-r+1 step3:(overflow) if f=r then write "queue overflow" return step4:[insert element] q[r]<-r step5:[setthe pointer] if f=0 thenf<-1 return
an algorithm for delete element from queue step1:[underflow] iff=0 then write queue overflow
141
step2:[delete element] y<-q(f) step3:[queue empty] if ]<-r<-0 return(y) step4:[increment front pointer] if ]=n then f<-1 else f<-f+1 return(y)
142
143
3) PROGRAM:
Program to implement Queue operations using arrays #include<stdio.h> #define max10 void insert(); void delete(); void display(); int cq[max]; int front=0,rear=0; void main() { int choice; char ch; do { printf("enter choice for circular queue"); printf("1-insert() 2-delete() 3-display()"); scanf("%d",&choice); switch(choice) { case 1: insert(); break; case 2: delete();
144
break;
case 3: display(); break; default: printf("invalid option"); break; } printf("do u wantto continue y/n"); fflush(stdin); scanf("%c",&ch); } while(ch=='y'||ch=='y'); } void insert() { int item; if(rear==max) rear=1; else error++; if(front==rear) printf("queue overflow"); else { printf("enter any item");
145
scanf("%d",&item); cq[rear]=item; }
if(front==0) front=1; } void delete() { int item; if(front==0) printf("queue underflow"); else { item=cq[front]; printf("the deleted element id %d",item); } if(front==rear) { front=0; rear=0; return; } if(front==max) front=1; else front=front+1;
146
} void dispaly() { int i; if(front==0) printf("no element inthe queue"); else { if(front<rear) for(i=front;i<=rear;i++) { printf("%d",q[i]); } else for(i=front;i>rear;i--) printf("%d",q[i]); } }
5) Result:
1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 14 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 15 1) Insert 2) Delete 3) Display Enter choice for circular queue 1
147
Enter any item 20 1) Insert 2) Delete 3) Display Enter choice for circular queue 3 14 15 20
Experiment 40:
1) AIM: Program infix-postfix operation 2) PROGRAM 43: #include<stdio.h> #include<conio.h> #define MAX 100 void push(char); char pop(); int top=-1; char stack[MAX]; void main() { char A,infix[100],post[100],x,ch; int i,j=0; clrscr(); printf("Enter the Infix expression.....\n"); gets(infix); push('('); for(i=0;(x=infix[i])!='\0';i++) { ch=')'; if((x>='A')&&(x<='Z')) post[j++]=x; else if(x=='(') push(x); else if(x==')') { while(ch!='(') { ch=pop(); post[j++]=ch; }
148
j--; } else { while(prec(x)<=prec(stack[top])) { ch=pop(); post[j++]=ch; } push(x); } } post[j]='\0'; printf("The Postfix Expression is.....\n"); puts(post); getch(); } int prec(char y) { int k; switch(y) { case '+':k=1; break; case '-':k=1; break; case '*':k=2; break; case '/':k=2; break; case '^':k=3; break; case '(':k=0; break; } return(k); } void push(char item) { if(top==MAX) { printf("OverFlow");
149
char pop(char item) { if(top==-1) { printf("Underflow"); return; } else { item=stack[top]; top=top-1; return item; } }
4) Result:
Enter the Infix Expression:((A+B)*(C-D)/((E+F)*(G-H) The Expected OutPut is...ABCDEFGH/*+-*+The Postfix Expression is:AB+CD-*EF+GH-*
150
Experiment 41: Program to implement Postfix evaluation 1) AIM: Program to implement Postfix evaluation 2) PROGRAM:
Program to implement Postfix evaluation #include<conio.h> #define MAX 100 void push(int); int pop(); int top=-1,f=0,i; int stack[MAX]; void main() { char post[100],x; int value, a,b; clrscr(); printf("Enter the Postfix Expression...."); gets(post); for( i=0;(x=post[i])!='\0';i++) { if(isdigit(x)) { push(x-'0'); } else { a=pop(); b=pop(); value=perform(x,a,b); push(value); } } gets(post); for(i=0;(x=post[i])!='\0';i++) { if(isdigit(x)) { push(x=0); } else { a=pop();
151
b=pop(); value=perform(x,a,b); push(value); } } printf("The value of the postfix expression is :%d\n",stack[top]); getch(); } int perform(char y,int m, int n) { int k; switch(y) { case '+':k=n+m; break; case '-':k=n-m; break; case '*':k=n*m; break; case '/':k=n/m; break; case '^':k=pow(n,m); break; } return(k); } void push(int item) { if(top==MAX) { printf("overflow\n"); return; } else { top=top+1; stack[top]=item; } return; } int pop(int item) { if(top==-1) { printf("underflow\n");
152
3) Result: 1
1.Enter the Postfix expression 654*+ The value of the Postfix expressin is: 26
Result: 2
2.Enter the Postfix expression is 6589+-* The vlaue of the Postfix expression is: -72 */
153
Experiment 42: Program to implement Prefix evaluation 1) AIM: Program to implement Prefix evaluation 2) ALGORITHM:
step1:initializestack to be empty reverse given i/p string step2:scan from left to right if the i/p string is operand push it on to the stack step3:if the i/p string is operator then the first two operatoron the stack areevaluated using this operator by popping them from the stack and the result is also palced on thestack
154
3) PROGRAM:
Program to implement Prefix evaluation #include<stdio.h> #include<conio.h> int st[100]; int st_top=-1; int cal(char post[]); void in_post(char in[]); void push_item(int it); int pop_item(); int st_ISP(char t); int st_ICP(char t); /*main function*/ void main() { char in[100],post[100]; clrscr(); printf("\n\tEnter the Infix Expression: "); gets(in); in_post(in); getch(); } /*end main*/ void push_item(int it) { if(st_top==99) { printf("\n\n\t*STACK is Full*"); getch(); exit(1); } st[++st_top]=it; } int pop_item() {
155
int it; if(st_top==-1) { getch(); } return(st[st_top--]); } /*Function for converting an infix expression to a postfix expression. */ void in_post(char in[]) { int x=0,y=0,z,result=0; char a,c, post[100]; char t; push_item('\0'); t=in[x]; while(t!='\0') { if(isalnum(t)) /*For checking whether the value in t is an alphabet or number. */ { post[y]=t; y++; } else if(t=='(') { push_item('('); } else if(t==')') { while(st[st_top]!='(') { c=pop_item(); post[y]=c; y++; } c=pop_item(); } else { while(st_ISP(st[st_top])>=st_ICP(t)) { c=pop_item(); post[y]=c; y++; }
156
push_item(t); } x++; t=in[x]; } while(st_top!=-1) { c=pop_item(); post[y]=c; y++; } printf("\n\tThe Postfix Expression is:"); for(z=0;z<y;z++) printf("%c",post[z]); printf("\n\nDo you want to evaluate the Result of Postfix Expression?(Y/N):"); scanf("%c",&a); if(a=='y' || a=='Y') { result=cal(post); printf("\n\n\tResult is: %d\n",result); getch(); } else if(a=='n' || a=='N') { exit(0); } } /*Determining priority of inside elements*/ int st_ISP(char t) { switch(t) { case '(':return (10); case ')':return (9); case '+':return (7); case '-':return (7); case '*':return (8); case '/':return (8); case '\0':return (0); default: printf("Expression is invalid."); break; } return 0;
157
} /*Determining priority of approaching elements*/ int st_ICP(char t) { switch(t) { case '(':return (10); case ')':return (9); case '+':return (7); case '-':return (7); case '*':return (8); case '/':return (8); case '\0':return (0); default: printf("Expression is invalid."); break; } return 0; }/*Evaluating the result of postfix expression*/ int cal(char post[]) { int m,n,x,y,j=0,len; len=strlen(post); while(j<len) { if(isdigit(post[j])) { x=post[j]-'0'; push_item(x); } else { m=pop_item(); n=pop_item(); switch(post[j]) { case '+':x=n+m; break; case '-':x=n-m; break; case '*':x=n*m; break; case '/':x=n/m; break;
158
} push_item(x); } j++; } if(st_top>0) { printf("Number of Operands are more than Operators."); exit(0); } else { y=pop_item(); return (y); } return 0;}
4) Result:
Enter the Infix Expression: a+b*c The Postfix Expression is: abc*+ Do you want to evaluate the Result of Postfix Expression?(Y/N):
159
Experiment 43: Program to implement Single linked list AIM: Program to implement Single linked list PROGRAM:
Program to implement Single linked list #include<stdio.h> #define null 0 struct linked-list { int number; struct linked-list *next; }; typedef struct linked-list node; main() { int ch; node *head; void create(node *p); int count(node *p); void print(node *p); node *insert(node *p); node *find(node *p,int key); node *delete(node *hrad); head=(node *)malloc(sizeof(node)); create(head); printf("\n"); print(head);
160
print(list->next); } return; } int count(node *list) { if(list->next==null) return(0); else return(1+count(list->next)); } node insert(node *head) { node *find(node *p,int a); node *new,*n1; int key,x; printf("enter value of new item\n"); scanf("%d",&x); printf("value of key item before which item is inserted?-999 if it is lost"); scanf("%d",&key); if(head->number==key) { new=(node*)malloc(sizeof(node));
161
{ n1=find(head,key); if(n1==null) printf("key is not found"); else { new=(node*)malloc(sizeof(node)); new->number=x; new->next=n1->next; n1->next=new; } } return(head); } node *find(node *list,int key) { if(list->next->number==key) return(list); else if(list->next->next==null) return(null);
162
else find(list->next,key); } node *delete(node *head) { node *find(node *p,int a); int key;
node *n1,*p; printf("enter the num to be deleted"); scanf("%d",&key); if(head->number==key) { p=head->next; free(head); head=p; } else { n1=find(head,key); if(n1==null) printf("\nkey not found"); else { p=n1->next->next; free(n1->next); n1->next=p;
163
} } return(head); }
164
5) Result:
1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 14 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 15 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 20 1) Insert 2) Delete 3) Display Enter choice for circular queue 3 14 15 20
165
Experiment 44: Program to implement Double linked list 1) AIM: Program to implement Double linked list 2) PROGRAM:
Program to implement Double linked list #include<stdio.h> struct node { int info; struct node *lptr,*rptr; }; struct node *current,*hrad=null; main() { charch='y'; int choice; void create(); void delete(); void insert(); void traverse(); printf("creation of doublelinkedlist"); do{ } create(); printf("do u wantto continue another node(y/n)); fflush(stdin); scanf("%c",&ch);
166
} while(ch!='n'); ch='y';
switch(choice) { case1:printf("the element in the list are\n"); traverse(); break; case2:insert(); break; case3:delete(); break; }scanf("%c",&ch); } } voidcreate() { int no;
167
struct node *temp; printf("enter the num \n"); scanf("%d",&no); temp=(struct node*)malloc(sizeof(struct(node)); temp->lptr=null;
{ current->rptr=temp; temp->lptr=current; current=temp; } } voidtraverse() { struct node *t1=head; if(t1==null) printf("\n"); else
168
struct node *new; struct node*t2=head; int no,p,option; if(t2==null) { printf("no elements is in linkedlist"); printf("pleaseinsert into any elemnets in the linkedlist\n"); exit(); }
else { printf("enter the no to insert \n"); scanf("%d",&no); printf("1.insert at begining \n"); printf("2.insert at end \n"); printf("3.insert at middle \n"); printf("enter u r option \n"); scanf("%d",&option);
169
head=new; break; case2: for(;t->rptr!=null;t2=t2->rptr) new->lptr=t2; t2->rptr=new; break; case3: printf("enter the elements after which u want to insert \n"); scanf("%d",&p); for(;t2!=null && t2->info!=p;t2=t2->rptr) if(t2=null) { printf("elements not found \n"); } else {
170
new->rptr=t2->rptr; t2->rptr->lptr=new; t2->prtr=new; new->lptr=t2; } break; } } } void delete() { int flag=0,ele; struct node *t3=head; if(t3==null) { printf("\n noelemnet"); exit(); } else { printf("enter the elemt to be deleted"); scanf("%d",&ele); while(t3!=null) { if(t3->info==ele) { flag=1;
171
if(t3==head) { head=t3->rptr; head->rptr=null; free(t3); } else { if(t3->rptr!=null) { t3->lptr=t3->rptr; t3->rptr=t3->lptr; free(t3); } else { t3->lptr->rptr=null; free(t3); } } } t3=t3->ptr; } if(flag==0) { printf("element not found\n"); }
172
} }
173
3) Result:
1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 14 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 15 1) Insert 2) Delete 3) Display Enter choice for circular queue 1 Enter any item 20 1) Insert 2) Delete 3) Display Enter choice for circular queue 3 14 15 20
174
Experiment 45 Program to implement Bubble sort 1) AIM: Program to implement Bubble sort 2) ALGORITHM:
step1: take first two elements of a list and compare them step2: if the first elements grater than second then interchange else keep the values as it step3: repeat the step 2 until last comparison takes place step4: reapeat step 1 to 3 until the list is sorted
175
EXPERIMENT 45: Program to implement Bubble sort AIM: Program to implement Bubble sort 3) PROGRAM:
Program to implement Bubble sort #include<stdio.h> main() { int a[10],i,j,temp,n; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n;i++) for(j=i+1;j<n;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; }
176
4) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
177
Experiment 46: Program to implement Selection sort 1) AIM: Program to implement Selection sort 2) ALGORITHM:
step1: take first a list of unsorted values step2: consider the first element as minimum element store itsindexvalue in a variable step3:repeat the step 2 untill last comparison takes place step4: compare the minimum with rest of all elements to find minimum value and interchange the minimum value with the first element step5: reapeat step 3 to 4 until the list is sorted*/
178
3) PROGRAM:
Program to implement Selection sort #include<stdio.h> main() { int a[10],i,j,temp,n; int min,loc; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n-1;i++) min=a[i]; loc=1; for(j=i+1;j<=n;j++) { if(min>a[j]) { min=a[j]; loc=j;
179
4) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
180
Experiment 47: Program to implement Insertion sort 1) AIM: Program to implement Insertion sort 2) ALGORITHM:
step1: take a list of values step2: compare the first two elements of a list if first element is greaterthan second interchange it else keep the list as it is. step3: now take three elements from the list andsort them as folloes Step4::reapeat step 2 to 3 until thelist is sorted*/
181
for(i=2;i<=n;i++) temp=a[i]; p=i-1; while(temp<a[p]) { a[p+1]=a[p]; p=p-1; } a[p+1]=temp; } for(i=1;i<=n;i++) { printf("%d\t",a[i]); } getch();}
4) Result:
Enter the max no.of elements u want to sort 5 Enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
182
2) ALGORITHM:
step1: take first a list of unsorted values step2: take firstelement as 'pivot' step3: keep the firstelement as 'pivot' and correct its position in the list step4: divide the list into two based on first element step5: combine the list
3) PROGRAM:
Program to implement Quick sort #include<stdio.h> main() { int a[10],i,left,right,n; int min,loc; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } left=0; right=n-1;
183
quicksort(a,left,right); display(a,n); } quicksort(int a[],int left,intright) { int temp,flag=1,i,j,p; i=left; j=right; p=a[left]; if(right>left) { while(flag) { do { i++; } while(a[i]<p && i<=right); while((a[i]>p) && j>left) j--; if(j<i) flag=0; else { temp=a[i]; a[i]=a[j]; a[j]=temp;
184
} } temp=a[lest]; a[left]=a[j]; a[j]=temp; quicksort[a,left,j-1]; quicksort[a,i,right]; } } display(int a[],int n) { int i; for(i=0;i<n;i++) { printf("%d\t",a[i]); } getch(); }
4) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
185
Experiment 49: Program to implement Heap sort 1) AIM: Program to implement Heap sort 2) ALGORITHM:
step1: arrange elements of a list in correct form of a binary tree step2: remove top most elements of the heap step3: re arrange the remaining elements from a heap this process is continued till we get sorted list
186
Program to implement Heap sort #include<stdio.h> main() { int a[10],i,j,n; int min,loc; clear(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&n); printf("\n enter the elements u want to sort \n"); for(i=0;i<n;i++) { scanf("%d",&a[i]); } heapsort(a,n); display(a,n); } heapsort(inta[],int n)
187
{ int temp,i,key,q; create heap(a,n); for(q=n;q>2;q--) { temp=a[i]; a[i]=a[q]; a[q]=temp; i=1; key=a[1]; j=2; if((j+1)<q) if(a[j+1]>a[j]) j++; while(j<=(q-1) && a[j]<key)) { a[i]=a[j]; i=j; j=2*i; if((j+1)<q) if(a[j+1]>a[j]) j++; else if(j>n) j=n; a[i]=key; }
188
}}
3) Result:
enter the max no.of elements u wanna sort 5 enter the elements u want to sort 10 20 15 6 40 6 10 15 20 40
Experiment 50: Program to implement Binary search 1) AIM: Program to implement Binary search 2) PROGRAM:
Program to implement Binary search #include<stdio.h> main() { int list[10],key,found,num,i; int low,high,mid; clrscr(); printf("\n enter the max no.of elements u wanna sort \n"); scanf("%d",&num); printf("\n enter the elements u want to sort \n"); for(i=0;i<num;i++) { scanf("%d",&list[i]);
189
} printf("enter the value to be searched"); scanf("%d",&key); low=o; high=num-1; while(low<=high) { mid=(low+high)/2; if(key==list[mid]) { printf("search is successful"); printf("\n the elemnts is %d\n",list[mid]); found=1; break;} if(key<list(mid)) high=mid-1; else if(key>list(mid)) low=mid+1; } if(found!=1) printf("seach is unsuccessful"); getch(); }
3) Result:
enter the max no.of elements u wanna sort
190
5 enter the elements u want to sort 12345 enter the value to be searched 3 search is successful the elemnts is 3
Experiment 51: Program to implement linear search 1) AIM: Program to implement linear search 2) PROGRAM:
Program to implement linear search #include<stdio.h> main() { int list[10],key,found,num,i; clrscr(); printf(Enter no. of elements : ); scanf(%d,&num); printf(Enter %d elements\n,num); for(i=0;i<num;i++)
191
scanf(%d,list[i[); printf("\n enter the value to be seached \n"); scanf("%d",&key); for(i=0;i<num;i++) { if(key==list[i]) { printf("\n %d element is found at location%d",list[i],i+1); found=1; } } if(found!=1) { printf(search is unsucessful"); } getch(); }
3) Result:
Enter number of elements : 5 Enter 5 elements 15 35 62 45 11 enter the value to be seached 62 62 element is found at location 3
192
TEXT BOOKS:
1. C AND Data Structures P. Padmanabhan, BS Publications. 2. C & Data structures Ashok N.Kanthane, Person Education.
REFERENCES:
1. Programming with ANSI and Turbo C Ashok N.Kamthane 2. Programming in ANSI C E. Balagurusamy 3. Let Us C - Yaswanth Kanethkar 4. C & Data Structures Prof. P.S.Desh Pande, Prof. O.G.Kakde, Wiley Dreamtech Pvt.Ltd 5. Data Structures Using C A.S.Tenenbum, PHI/Person Education. 6. The C Programming Language B.W.Kernighan,Dennis M.Richie, PHI/ Person Education.
193