Tuesday, February 2, 2010

character to ascii bits

#include
#include
void main()
{
int i,arr[8],j;
char ch;
FILE *fp; // file pointer initialization
fp=fopen("c:\\priyu.txt","r"); //open in read mode
ch=fgetc(fp);
clrscr();
// printf("enter character :");
// scanf("%c",&ch);
printf("%c=%d in binary:",ch,ch);
for(i = 7,j=0; i>=0; i--,j++)
{
// printf("\n%d",(1< //if not 0 then if or else
if((1< {
printf("1");
arr[j]=1;
}
else
{
printf("0");
arr[j]=0;
}
}
printf("\n");
for(j=0;j<=7;j++)
{
printf("%d",arr[j]);
}
//find first four bits
printf("\nfirst four bits of character:");
for(j=0;j<=3;j++)
{
printf("%d",arr[j]);
}
printf("\n");
getch();
}

North West Corner Rule

#include
#include
int main(void)
{
int sum,i,j,cost[5][5],sup[5],dim[5],row,col;
clrscr();
printf("enter total row:");
scanf("%d",&row);
printf("enter total col:");
scanf("%d",&col);
printf("enter values for supply :");

for(i=0;i{ scanf("%d",&sup[i]);}
printf("enter values for dimand:");
for(i=0;i{ scanf("%d",&dim[i]);}
printf("enter cost values:");
for(i=0;i{
for(j=0;j {
scanf("%d",&cost[i][j]);
}
}

sum=0;

for(i=0;i{
for(j=0;j {
if(dim[j] {
sum=sum+(cost[i][j]*dim[j]);
sup[i]=sup[i]-dim[j];
j++;
}
else if(dim[j]>sup[i])
{
sum=sum+(cost[i][j]*sup[i]);
dim[j]=abs(dim[j]-sup[i]);
i++;
//j++;
}
else
{
sum=sum+(cost[i][j]*dim[j]);
// dim[j]=abs(sup[i]-dim[j]);
j++;
i++;
//break;
}
}
}
printf("%d",sum);

getch();
return 0;
}

Monday, February 1, 2010

caesar encryption implementation coding

#include
#include
int main(void)
{
char str[100],str1[100],target[100],target1[100],find[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int len,key,i,j;
clrscr();
printf("enter plaintext : ");
scanf("%[^\n]",str);
len=strlen(str);
//printf("length=%d",len);
printf("enter key:");
scanf("%d",&key);
for(i=0;i{
for(j=0;j<26;j++)
{
if(str[i]==find[j])
{
if(j+key>=26)
{
target[i]=find[j]-26+key;
}
else
{
target[i]=find[j+key];
}
}
}
}
target[i]='\0';
printf("encrypted:%s",target);
printf("\nenter cipher text for descryption: ");
getchar();
scanf("%[^\n]",str1);
printf("enter key:");
scanf("%d",&key);
for(i=0;i{
for(j=0;j<26;j++)
{
if(str1[i]==find[j])
{
if(j-key<0)
{
target1[i]=find[j]+26-key;
}
else
{
target1[i]=find[j-key];
}
}

}
}
target1[i]='\0';
printf("plaintext is :%s",target1);
getch();
return 0;
}

Shannon fano algorithm implementation coding

#include
#include
#include
struct node
{
	char sym;
	float pro;
	int arr[40];
	int top;
}s[40];
typedef struct node node;
int main()
{
	char *p,tchar,str[60],symbol[30]={""};
        char find[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n'
,'o','p','q','r','s','t','u','v','w','x','y','z'};
	int flag,start,temp,*v,count[3],scount[30]={0},slen,i,len=0,numlen,j,fchar[30]={0},k,flen;
	float *vf;
	void shannon(int l,int h,node s[]);
	clrscr();
	numlen=strlen(find);
	printf("enter string :");
	scanf("%[^\n]",str);
	len=strlen(str);
	i=0;
	while(i{
	 for(j=0;j {
		if(str[i]==find[j])
		{
		 fchar[j]++;         //increment count for character
		}
	 }
	i++;
	}
	str[i]='\0';
	i=0;
	for(k=0;k{

	 if(fchar[k]!=0)
	 {
	   symbol[i]=find[k];
	   scount[i]=fchar[k];
	   i++;
	 }
	}
	slen=i;
	for(i=0;i{
	  for(j=0;j  {
		  if(scount[i]>scount[j])
		  {
		   //swap value
		   temp=scount[i];
		   scount[i]=scount[j];
		   scount[j]=temp;
		   //swap char
		   tchar=symbol[i];
		   symbol[i]=symbol[j];
		   symbol[j]=tchar;
		  }
	  }
	}
	printf("\nsymbol count\n");
	for(j=0,i=slen-1;j{
	  printf("%c      %d\n",symbol[j],scount[j]);
	  *(vf+j)=(float)scount[j]/100;
	  s[i].sym=symbol[j];
	  s[i].pro=*(vf+j);
	}

	for(i=0;is[i].top=-1;
	shannon(0,slen-1,s);
	//code bit logic
	printf("---------------------------------------------------------------");
	printf("\n\n\n\tSymbol\tProbability\tCode");
	printf("---------------------------------------------------------------");
	printf("\n\n\n\tSymbol\tProbability\tCode");
	for(i=slen-1;i>=0;i--)
	{
		printf("\n\t%c\t%f\t",s[i].sym,s[i].pro);
		for(j=0;j<=s[i].top;j++)
		printf("%d",s[i].arr[j]);
	}
	printf("\n---------------------------------------------------------------");
	getch();
	return 0;
}
void shannon(int l,int h,node s[])
{
	float pack1=0,pack2=0,diff1=0,diff2=0;
	int i,d,k,j;
	if((l+1)==h || l==h || l>h)
	{
		if(l==h || l>h)
		return;
		s[h].arr[++(s[h].top)]=0;
		s[l].arr[++(s[l].top)]=1;
		return;
	}
	else
	{
		for(i=l;i<=h-1;i++)
		pack1=pack1+s[i].pro;
		pack2=pack2+s[h].pro;
		diff1=pack1-pack2;
		if(diff1< 0)
		diff1=diff1*-1;
		j=2;
		while(j!=h-l+1)
		{
			k=h-j;
			pack1=pack2=0;
			for(i=l;i<=k;i++)
			pack1=pack1+s[i].pro;
			for(i=h;i>k;i--)
			pack2=pack2+s[i].pro;
			diff2=pack1-pack2;
			if(diff2< 0)
			diff2=diff2*-1;
			if(diff2>=diff1)
			break;
			diff1=diff2;
			j++;
		}
		k++;
		for(i=l;i<=k;i++)
		s[i].arr[++(s[i].top)]=1;
		for(i=k+1;i<=h;i++)
		s[i].arr[++(s[i].top)]=0;
		shannon(l,k,s);
		shannon(k+1,h,s);
	}
}