cout << \请输入分别中间状态:\ for(int i1 = 0; i1 < n_midd_stat; i1++) { }
n_final_stat = n - n_midd_stat - 1; cout << \最后分别输入终态:\ for(int i2 = 0; i2 < n_final_stat; i2++) { }
cout << \请输入终结符的数目:\ cin >> m;
char* terminal = new char[m]; cout << \请分别输入终结符:\ for(int i3 = 0; i3 < m; i3++) { }
cout << endl;
//构造自动机 int i, j,k;
char** f = new char*[n]; for(k=0;k cin >> terminal[i3]; cin >> stat[n_midd_stat + 1 + i2]; cin >> stat[i1 + 1]; 11 { } cout << \构造自动机:\ for(i = 0; i < n; i++) { } cout << endl; //转换成对应的文法 cout << \由此自动机转换成的对应的文法为:\ cout << \ for(int i4 = 0; i4 < n; i4++) { for(j = 0; j < n; j++) { } cout << \状态\能否直接推出状态\ << stat[j]; f[k]=new char[n]; if((i == 0) && (j == 0)) { } else { } cin >> f[i][j]; cout << \ cout << \若能则输入相应的终结符,否则输入\\\ 12 } if(i4 != 0) { } cout << stat[i4]; cout << \ cout << \ cout << \ for(int i5 = 0; i5 < m; i5++) { } cout << \ cout << \ cout << stat[0] << \ cout << \其中P为:\ for(i = 0; i < n; i++) { for(j = 0; j < n; j++) { if(f[i][j] != '0') { if(i5 != 0) { } cout < cout << \ 13 } } } cout << stat[i] << \ //输出可接受状态增加的产生式,例如A->ε for(int i6 = 0; i6 < n_final_stat; i6++) { } return 0; } cout << stat[n_midd_stat + 1 + i6] << \ε\ 5运行与测试 测试程序使用的自动机用例: 开始状态:A; 中间状态:1个,为B; 终态:2个,分别为C、D; 终结符:2个,分别为a、b; 装换关系为 Stat A B C A 0 0 a B a 0 0 C 0 b 0 D b 0 b 14 D 0 b 0 b (6)得到的结果如图: 15 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库正规文法与有限自动机的相互转换(3)在线全文阅读。
相关推荐: