Saturday, November 3, 2007

3 Address Conversion

Program :



# include
# include
# include

void main() //main function
{

int i,j,ctr,n,k,l,f,z,m1;
char exp[30];
char temp[8];
char m[10]={'P','Q','R','S','T','U','V','W','X','Y'};
clrscr();
ctr=n=k=l=f=z=m1=0; //initialize variables as 0
printf("Enter the expression");
gets(exp); //get input expression

while(strlen(exp)!=5)
{
for(i=2;i{

if(exp[i]=='(') //if scanned character is (
{
k=i;
j=0;

while(exp[k+1]!=')') //until a ) is reached
{
temp[j]=exp[k+1];
j++; //increment j and k
k++;
}

exp[i]=m1[m];
temp[j]='\0';
printf("\n%c=%s",m1[m],temp);
m1++;
ctr=l;
n=i+1;

while(exp[ctr+n-1]!=')')
{
ctr++;
}

for(z=n,f=n+ctr;f{
exp[z]=exp[f];
}

exp[z]='\0';
}
}

for(i=2;i{

if((exp[i]=='+')||(exp[i]=='-')) //if character is a + or - operator
{
k=i;
j=0;

for(k=i-1;k{
temp[j]=exp[k];
j++;
}

exp[i-1]=m1[m];
temp[j]='\0';
printf("\n%c=%s",m1[m],temp);
m1++;

for(z=i;z{
exp[z]=exp[z+2];
}







exp[z]='\0';
}

for(i=2;i{
//if character is a * or / operator
if((exp[i]=='*')||(exp[i]=='/'))

{
k=i;
j=0;

for(k=i-1;k{
temp[j]=exp[k];
j++;
}

exp[i-1]=m1[m];
temp[j]='\0';
printf("\n%c=%s",m1[m],temp);
m1++;

for(z=i;z{
exp[z]=exp[z+2];
}
exp[z]='\0'; //initialize final character as \0
}
}
}

}
printf("\n%s",exp);
getch();
}

0 comments: