Explain what each line of this program do and comments to it. if(reg[i]=='a'&®[i+1]!='/'&®[i+1]!='*') { q[j][0]=j+1; j++; } if(reg[i]=='b'&®[i+1]!='/'&®[i+1]!='*') { q[j][1]=j+1; j++; } if(reg[i]=='e'&®[i+1]!='/'&®[i+1]!='*') { q[j][2]=j+1; j++; } if(reg[i]=='a'&®[i+1]=='/'&®[i+2]=='b') { q[j][2]=((j+1)*10)+(j+3); j++; q[j][0]=j+1; j++; q[j][2]=j+3; j++; q[j][1]=j+1; j++; q[j][2]=j+1; j++; i=i+2; } if(reg[i]=='b'&®[i+1]=='/'&®[i+2]=='a') { q[j][2]=((j+1)*10)+(j+3); j++; q[j][1]=j+1; j++; q[j][2]=j+3; j++; q[j][0]=j+1; j++; q[j][2]=j+1; j++; i=i+2; } if(reg[i]=='a'&®[i+1]=='*') { q[j][2]=((j+1)*10)+(j+3); j++; q[j][0]=j+1; j++; q[j][2]=((j+1)*10)+(j-1); j++; } if(reg[i]=='b'&®[i+1]=='*') { q[j][2]=((j+1)*10)+(j+3); j++; q[j][1]=j+1; j++; q[j][2]=((j+1)*10)+(j-1); j++; } if(reg[i]==')'&®[i+1]=='*') { q[0][2]=((j+1)*10)+1; q[j][2]=((j+1)*10)+1; j++; } i++; } printf("Transition function \n"); for(i=0;i<=j;i++) { if(q[i][0]!=0) printf("\n q[%d,a]-->%d",i,q[i][0]); if(q[i][1]!=0) printf("\n q[%d,b]-->%d",i,q[i][1]); if(q[i][2]!=0) { if(q[i][2]<10) printf("\n q[%d,e]-->%d",i,q[i][2]); else printf("\n q[%d,e]-->%d & %d",i,q[i][2]/10,q[i][2]%10); } } return 0; }
Explain what each line of this program do and comments to it.
if(reg[i]=='a'&®[i+1]!='/'&®[i+1]!='*')
{
q[j][0]=j+1;
j++;
}
if(reg[i]=='b'&®[i+1]!='/'&®[i+1]!='*')
{
q[j][1]=j+1;
j++;
}
if(reg[i]=='e'&®[i+1]!='/'&®[i+1]!='*')
{
q[j][2]=j+1;
j++;
}
if(reg[i]=='a'&®[i+1]=='/'&®[i+2]=='b')
{
q[j][2]=((j+1)*10)+(j+3);
j++;
q[j][0]=j+1;
j++;
q[j][2]=j+3;
j++;
q[j][1]=j+1;
j++;
q[j][2]=j+1;
j++;
i=i+2;
}
if(reg[i]=='b'&®[i+1]=='/'&®[i+2]=='a')
{
q[j][2]=((j+1)*10)+(j+3);
j++;
q[j][1]=j+1;
j++;
q[j][2]=j+3;
j++;
q[j][0]=j+1;
j++;
q[j][2]=j+1;
j++;
i=i+2;
}
if(reg[i]=='a'&®[i+1]=='*')
{
q[j][2]=((j+1)*10)+(j+3);
j++;
q[j][0]=j+1;
j++;
q[j][2]=((j+1)*10)+(j-1);
j++;
}
if(reg[i]=='b'&®[i+1]=='*')
{
q[j][2]=((j+1)*10)+(j+3);
j++;
q[j][1]=j+1;
j++;
q[j][2]=((j+1)*10)+(j-1);
j++;
}
if(reg[i]==')'&®[i+1]=='*')
{
q[0][2]=((j+1)*10)+1;
q[j][2]=((j+1)*10)+1;
j++;
}
i++;
}
printf("Transition function \n");
for(i=0;i<=j;i++)
{
if(q[i][0]!=0)
printf("\n q[%d,a]-->%d",i,q[i][0]);
if(q[i][1]!=0)
printf("\n q[%d,b]-->%d",i,q[i][1]);
if(q[i][2]!=0)
{
if(q[i][2]<10)
printf("\n q[%d,e]-->%d",i,q[i][2]);
else
printf("\n q[%d,e]-->%d & %d",i,q[i][2]/10,q[i][2]%10);
}
}
return 0;
}
Step by step
Solved in 3 steps