You are on page 1of 12

Aim: Program to implement bit stuffing

Program:
#include<stdio.h>
void main()
{
int si=0,di=0,c=0;
char src[20],des[50]="",flag[]="01111110";
clrscr();
printf("enter the string");
scanf("%s",&src);
strcat(des,flag);
di=strlen(flag);
while(src[si]!='\0')
{
if(src[si]=='1')
c++;
else
c=0;
des[di]=src[si];
di++;
si++;
if(c==5)
{
des[di]='0';
di++;
c=0;
}
}
des[di]='\0';
strcat(des,flag);
printf("%s",des);
getch();
}

Output:
Enter the string 11111111
The stuffed string is 011111011111011101111110

Aim: Program to implement de-bit stuffing


Program:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define max 100
void main()
{
int si=8,di=0,d,count_1=0;
char src[max],dest[max];
clrscr();
printf("enter the data");
scanf("%s",&src);
d=strlen(src);
while(si<=(d-8))
{
if(src[si=='1'])
count_1++;
else
count_1=0;
dest[di++]=src[si++];
if(count_1==5)
{
si++;
count_1=0;
d--;
}
dest[di]='\0';
}
printf("data is %s",dest);
getch();
}

Output:
Enter the data 0111111011111011101111110
Data is 11111111

Aim: Program to implement character stuffing


Program:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define max 100
void main()
{
int si=0,di=0;
char src[max],dest[max],flag[8]="DLESTX",flag1[]="DLESTX";
clrscr();
printf("enter data");
scanf("%s",&src);
strcpy(dest,flag);
di=strlen(flag);
while(src[si]!='\0')
{
if(src[si]=='D'&&src[si+1]=='L'&&src[si+2]=='E')
{
dest[di]='D',dest[di+1]='L',dest[di+2]='E';
dest[di+3]='D',dest[di+4]='L',dest[di+5]='E';
di+=6;
si+=3;
}
else
dest[di++]=src[si++];
}
dest[di]='\0';
strcat(dest,flag1);
printf("the stuffed string is %s",dest);
getch();
}

Output:
Enter data aDLEb
The stuffed string is DLESTaDLEDLEbDLESTX

Aim: Program to implement de-character stuffing


Program:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#define max 100
void main()
{
int si=6,di=0,d,count=0;
char src[max],dest[max];
clrscr();
printf("enter data");
scanf("%s",&src);
di=strlen(src);
while(si<=(d-6))
{
if(src[si+1]=='D'&&src[si+2]=='L'&&src[si+3]=='E')
count++;
else
count=0;
dest[di++]=src[si++];
if(count==1)
{
si+=3;
count=0;
d--;
}
}
dest[di]='\0';
printf("the destuffed string is %s",dest);
getch();
}

Output:
Enter data DLESTXADLEDLEBDLEETX
The destuffed string is ADLEB

Aim: Program for cyclic redundancy check


Program:
#include<stdio.h>
#include<conio.h>
int gen[4],genl,frl,rem[4];
void main()
{
int i,j,fr[8],dupfr[11],recfr[11],tlen,flag;
clrscr();
frl=8;genl=4;
printf("enter the frame:");
for(i=0;i<frl;i++)
scanf("%d",&fr[i]);
printf("enter generator:");
for(i=0;i<genl;i++)
scanf("%d",&gen[i]);
tlen=frl+genl-1;
for(i=frl;i<tlen;i++)
{
dupfr[i]=0;
}
remainder(dupfr);
for(i=0;i<frl;i++)
{
recfr[i]=fr[i];
}
for(i=frl,j=1;j<genl;i++,j++)
{
recfr[i]=rem[j];
}
remainder(recfr);
flag=0;
for(i=0;i<4;i++)
{
if(rem[i]!=0)
flag++;
}
if(flag==0)
{
printf("frame received correct");
}
else
{
printf("the received frame is wrong");
}
getch();

}
remainder(int fr[])
{
int k,k1,i,j;
for(k=0;k<frl;k++)
{
if(fr[k]==1)
{
k1=k;
for(i=0,j=k;i<genl;i++,j++)
{
rem[i]=fr[j]^gen[i];
}
for(i=0;i<genl;i++)
{
fr[k1]=rem[i];
k1++;
}
}
}
}

Output:
Enter the frame: 11111111
Enter generator: 1111
Frame received correct

Aim: Program for cyclic redundancy check12


Program:
#include<stdio.h>
#include<conio.h>
int gen[12],n,genl,frl,rem[12];
void main()
{
int i,j,fr[20],dupfr[17],recfr[17],tlen,flag;
clrscr();
frl=5;genl=13;
printf("enter the frame:");
for(i=0;i<frl;i++)
{
scanf("%d",&fr[i]);
dupfr[i]=fr[i];
}
printf("enter generator:");
for(i=0;i<genl;i++)
scanf("%d",&gen[i]);
tlen=frl+genl-1;
for(i=frl;i<tlen;i++)
{
dupfr[i]=0;
}
remainder(dupfr);
for(i=0;i<frl;i++)
{
recfr[i]=fr[i];
}
for(i=frl,j=1;j<genl;i++,j++)
{
recfr[i]=rem[j];
}
remainder(recfr);
flag=0;
for(i=0;i<13;i++)
{
if(rem[i]==0)
flag++;
}
if(flag==0)
{
printf("frame received incorrect");
}
else
{

printf("the received frame is correct");


}
getch();
}
remainder(int fr[])
{
int k,k1,i,j;
for(k=0;k<frl;k++)
{
if(fr[k]==1)
{
k1=k;
for(i=0,j=k;i<genl;i++,j++)
{
rem[i]=fr[j]^gen[i];
}
for(i=0;i<genl;i++)
{
fr[k1]=rem[i];
k1++;
}
}
}
}

Output:
Enter the frame: 10111
Enter generator: 1110001111001
The received frame is correct

Aim: Program for cyclic redundancy check16


Program:
#include<stdio.h>
#include<conio.h>
int gen[16],n,genl,frl,rem[16];
void main()
{
int i,j,fr[5],dupfr[21],recfr[21],tlen,flag;
clrscr();
frl=5;genl=17;
printf("enter the frame:");
for(i=0;i<frl;i++)
{
scanf("%d",&fr[i]);
dupfr[i]=fr[i];
}
printf("enter generator:");
for(i=0;i<genl;i++)
scanf("%d",&gen[i]);
tlen=frl+genl-1;
for(i=frl;i<tlen;i++)
{
dupfr[i]=0;
}
remainder(dupfr);
for(i=0;i<frl;i++)
{
recfr[i]=fr[i];
}
for(i=frl,j=1;j<genl;i++,j++)
{
recfr[i]=rem[j];
}
remainder(recfr);
flag=0;
for(i=0;i<17;i++)
{
if(rem[i]==0)
flag++;
}
if(flag==0)
{
printf("frame received incorrect");
}
else
{

printf("the received frame is correct");


}
getch();
}
remainder(int fr[])
{
int k,k1,i,j;
for(k=0;k<frl;k++)
{
if(fr[k]==1)
{
k1=k;
for(i=0,j=k;i<genl;i++,j++)
{
rem[i]=fr[j]^gen[i];
}
for(i=0;i<genl;i++)
{
fr[k1]=rem[i];
k1++;
}
}
}
}

Output:
Enter the frame: 11111
Enter generator: 11110000111100001
The received frame is correct

Aim: Program for finding shortest path for a given graph


Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int path[5][5],i,j,min,a[5][5],p,st=1,ed=5,stp,edp,t[5],index;
clrscr();
printf("enter the cost matrix \n");
for(i=1;i<=5;i++)
for(j=1;j<=5;j++)
scanf("%d",&a[i][j]);
printf("enter number of paths \n");
scanf("%d",&p);
printf("enter possible paths \n");
for(i=1;i<=p;i++)
for(j=1;j<=5;j++)
scanf("%d",&path[i][j]);
for(i=1;i<=p;i++)
{
t[i]=0;
stp=st;
for(j=1;j<=5;j++)
{
edp=path[i][j+1];
t[i]=t[i]+a[stp][edp];
if(edp==ed)
break;
else
stp=edp;
}
}
min=t[st];index=st;
for(i=1;i<=p;i++)
{
if(min>t[i])
{
min=t[i];
index=i;
}
}
printf("minimum cost %d",min);
printf("\n minimum cost path");
for(i=1;i<=5;i++)
{
printf("-->%d",path[index][i]);
if(path[index][i]==ed)

break;
}
getch();
}

Output:
Enter the cost matrix:
01420
00023
00030
00005
00000
Enter number of paths:4
Enter possible paths:
12450
12500
14500
13450
Minimum cost:4
Minimum cost path:
1- ->2- ->5

You might also like