一个用于构造 DFA(确定有限自动机)的 C 程序,它接收 L = {aN | N ≥ 1}
我们取一个大小为 N 的字符串 S, 我们需要设计一个确定有限自动机 (DFA) 来接受语言 L = {aN | N ≥ 1}。
接受语言 L 的字符串为 {a, aa, aaa, aaaaaaa…, }。
现在,用户必须输入一个字符串,如果该字符串存在于给定的语言中,则打印“已接受输入的字符串”。否则,打印“未接受输入的字符串”。
给定语言的 DFA 转移图是 −

示例
以下是一个 C 程序,用于构造接受语言的 DFA L = {aN | N ≥ 1} −
#include<stdio.h>
int main() {
char S[30];
int l,i;
int count = 0;
printf("To implement DFA of language {aN | N ≥ 1}
enter input string:");
scanf("%s",S);
l=strlen(S);
for (i=0;i<l;i++) {
if(S[i]!='a') {
printf("entered string is NOT ACCEPTED");
getch();
exit(0);
}
if (S[i] == 'a')
count++;
else
printf("invalid input");
}
if (count == l && count != 0) {
printf("entered string is accepted");
}
return 0;
}输出
你会得到以下输出 −
Run 1:
To implement DFA of language {aN | N >= 1}
enter input string:aaaa
entered string is accepted
Run 2:
To implement DFA of language {aN | N >= 1}
enter input string:badsaa
entered string is NOT ACCEPTED
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 程序设计
C++
C#
MongoDB
MySQL
Javascript
PHP