博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有限自动机的构造与识别
阅读量:6695 次
发布时间:2019-06-25

本文共 1602 字,大约阅读时间需要 5 分钟。

#include "iostream.h"

#include "string.h" 
#include "fstream.h"
#define NULL 0

class TransTile
{
public:
char current;
char next;
char input;
TransTile(char C,char I,char Ne){
current = C;
next = Ne;
input = I;
}
};

 

class DFA

{
public:
string States;
char startStates;
string finalStates;
string Alphabets;
vector <TransTile> Tile;
DFA(){
init();
}
void init()
{
cout << "输入有限状态集S:" << endl;
cin >> States;
cout << "输入字符集A:" << endl;
cin >> Alphabets;
cout << "输入状态转换式(格式为:状态-输入字符-下一状态,输入#结束):" << endl;
cout << "例如:1a1 \n 1a0 \n 2a1 \n #" << endl;
int h = 0;

//while (cin>>input){

// TransTile transval(input[0], input[1], input[2]);
// Tile.push_back(transval);
//}
while(true){
char input[4];
cin>>input;
if(strcmp(input,"#")==0)
break;
TransTile transval(input[0],input[1],input[2]);
Tile.push_back(transval);
}
cout << "输入初态:" << endl;
cin >> startStates;
cout << "输入终态:" << endl;
cin >> finalStates;
}
char move(char P,char I){
for (int i = 0; i < Tile.size(); i++){
if (Tile[i].current == P&&Tile[i].input == I){
return Tile[i].next;
}
return 'E';
}
void recognition(){
string str;
cout << "please input string:" << endl;
cin >> str;
int i = 0;
char current = startStates;
while (i < str.length()){
current = move(current, str[i]);
if (current == 'E'){
break;
}
i++;
}
if (finalStates.find(current) != finalStates.npos){
cout << "ERROR!" << endl;

}

else
{
cout << "ERROR!" << endl;
}
}
};

 

 

int main(){

DFA dfa; 
bool tag;

while(1){

cout<<"continue to '1',else to '0':"<<endl;
cin>>tag;
if(tag){
dfa.recognition();
}else
break;

}

return 0;
}

转载于:https://www.cnblogs.com/qazwsxedcrfv/p/5017254.html

你可能感兴趣的文章
pip安装包
查看>>
background
查看>>
WampServer修改MySQL密码的问题
查看>>
python学习第五天
查看>>
OO第三单元作业总结
查看>>
hibernate5.x版本org.hibernate.MappingException: Unknown entity问题
查看>>
Linux - Ubuntu下JDK配置
查看>>
Fiddler4无法抓取HttpWebRequest本地请求的解决办法
查看>>
liunx系统计划任务管理(at/crond调度)
查看>>
采药(洛谷简单dp背包问题)
查看>>
交换两个整数的三种方法
查看>>
洛谷3321 SDOI2015 序列统计
查看>>
jsp打印
查看>>
一个例子明白python函数作用域
查看>>
牛客网多线程程序执行结果选择题
查看>>
CSS那点事
查看>>
201706061056-简陋版jquery全局消息订阅
查看>>
初识 Burp Suite
查看>>
Java面试题总结(不定期更新)
查看>>
软件工程项目组Z.XML会议记录 2013/10/22
查看>>