1118實驗三有限自動機的構造與識別

2022-05-14 21:24:07 字數 1190 閱讀 8712

#include

#include

#include

int main()

;//存放非終結符號

char vt[30]=;//存放終結符號

printf("請輸入規則個數");

scanf("%d",&n);

line=n;

for(i=0;i<30;i++)//給字串陣列p,q全部賦值為'\0'

for(j=0;j<30;j++)

printf("請輸入文法:\n");

for(i=0;i='a'||(p[i][j]<='9'&&p[i][j]>='0'))

}if(flag==0)

}//終結符放在陣列vt中

if(p[i][j]<='z'&&p[i][j]>='a')

}if(flag==0)}}

}//把規則右部分分離,放入陣列q中

count=0;

k=0;

for(i=0;i='a')||(p[i][j]<='z'&&p[i][j]>='a')||(p[i][j]<='9'&&p[i][j]>='0'))

else

}count++;

k=0;

}//判斷是確定的還是非確定的有窮狀態自動機,並進行前半部分列印

//判斷依據:q陣列中每一行字串是否相同

flag=0;

for(i=0;i='a')||(p[i][j]<='z'&&p[i][j]>='a')||(p[i][j]<='9'&&p[i][j]>='0'))

if(p[i][j]=='l')}}

count++;

k=0;

}printf("\n");

//列印m後部分

printf("m:\n");

l=0;

while(vn[l]!='\0')

}printf("}\t");

l++;

}printf("\n");

l=0;k=0;

while(vt[k]!='\0')

}printf("}\t");

l++;

}k++;

printf("\n");

}system("pause");

}

1118 實驗三 有限自動機的構造與識別

include include define ok 1 define error 0 define maxregluarlong 40 define maxstatelong 40 define maxcahrslong 40 typedef int state int icurrentstate ...

1118有限自動機的構造與識別

include include include intmain 存放非終結符號 char vt 30 存放終結符號 printf 請輸入規則個數 scanf d n line n for i 0 i 30 i 給字串陣列p q全部賦值為 0 for j 0 j 30 j printf 請輸入文法 n...

實驗三 有限自動機的構造與識別

實驗三 有限自動機的構造與識別 一 實驗目標 1 掌握有窮狀態自動機的概念 2 掌握有窮狀態自動機的儲存及表示方法 3 掌握有窮狀態自動機與正則式之間的關係。二 實驗要求 1 輸入正規式 2 構造該正規式的有窮狀態自動機 3.以五元組形式輸出。三 演算法 參見教材的轉換規則。練習 a b abb l...