#include
#include
#define ok 1
#define error 0
#define maxregluarlong 40
#define maxstatelong 40
#define maxcahrslong 40
typedef int state;
int icurrentstate=0; //初態以1開始
int iprestate=0;
int ilastforkstate=0;
int iforkstate=0;
int imaxstate=0;
char cregluarsting[maxregluarlong]; //輸入的正規式字串
char ccharset[maxcahrslong]; //字符集
int istatematrix[maxstatelong][maxcahrslong]; //狀態轉換矩陣
state vstoreregluarsting()//把字串讀入乙個緩衝區中
state vpreprocessregluarsting()
//對字串進行預處理,去掉字串裡面的對分析不產生影響
}i++;
}return ok;
}void vconstructstatematrix(char cchar,int istate)//構造狀態轉換矩陣
void vaanalyseregluarsting()//對字串進行從左到右的分析與處理
if(cregluarsting[i]=='|')
if(icharnumbeforl==1&&cregluarsting[i+2]=='|')
icurrentstate=iforkstate;
icharnumbeforl=0;
}if(cregluarsting[i]==')')}}
else
} }}
void vprintfstateprojectfunction()
void vprintfnfa()//輸出nfa
\n");
printf("\n狀態集s為:
printf("}\n\n");
vprintfstateprojectfunction();
printf("\n初態集s0為:\n\n");
printf("終態集f為:",imaxstate);
1118實驗三有限自動機的構造與識別
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 請輸入文法 ...
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...