Content-Length: 3092589 | pFad | https://www.scribd.com/document/583832552/NFA-TO-DFA
0Experiment-1: AIM: Convert NFA To DFA
Experiment-1: AIM: Convert NFA To DFA
Experiment-1: AIM: Convert NFA To DFA
#include<stdio.h>
#include<string.h>
#include<math.h>
int ninputs;
int main()
int f[10];
int i,j=3,s=0,final=0,flag=0,curr1,curr2,k,l;
int c;
scanf("%d",&st);
printf("\nGive state numbers from 0 to %d",st-1);
for(i=0;i<st;i++)
state[(int)(pow(2,i))] = 1;
scanf("%d",&fin);
for(i=0;i<fin;i++)
scanf("%d",&f[i]);
int p,q,r,rel;
scanf("%d",&rel);
scanf("%d%d%d",&p,&q,&r);
if (q==0)
dfa[p][0][r] = 1;
else
dfa[p][1][r] = 1;
scanf("%d",&in);
in = pow(2,in);
i=0;
int x=0;
for(i=0;i<st;i++)
for(j=0;j<2;j++)
int stf=0;
for(k=0;k<st;k++)
{
if(dfa[i][j][k]==1)
go[(int)(pow(2,i))][j] = stf;
printf("%d-%d-->%d\n",(int)(pow(2,i)),j,stf);
if(state[stf]==0)
arr[x++] = stf;
state[stf] = 1;
for(i=0;i<x;i++)
for(j=0;j<2;j++)
int new=0;
for(k=0;k<st;k++)
int h = pow(2,k);
if(new==0)
new = go[h][j];
if(state[new]==0)
arr[x++] = new;
state[new] = 1;
printf("STATE 0 1\n");
for(i=0;i<10000;i++)
{
if(state[i]==1)
//printf("%d**",i);
int y=0;
if(i==0)
printf("q0 ");
else
for(j=0;j<st;j++)
int x = 1<<j;
if(x&i)
printf("q%d ",j);
y = y+pow(2,j);
//printf("y=%d ",y);
//printf("%d",y);
printf(" %d %d",go[y][0],go[y][1]);
printf("\n");
}
j=3;
while(j--)
printf("\nEnter string");
scanf("%s",str);
l = strlen(str);
curr1 = in;
flag = 0;
printf("%d-",curr1);
for(i=0;i<l;i++)
curr1 = go[curr1][str[i]-'0'];
printf("%d-",curr1);
for(i=0;i<fin;i++)
flag = 1;
break;
if(flag)
printf("\nString Accepted");
else
printf("\nString Rejected");
return 0;
}
OUTPUT:
Fetched URL: https://www.scribd.com/document/583832552/NFA-TO-DFA
Alternative Proxies: