一个用于构造 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

更新于:14-6 月-2021

687 次浏览

开启你的事业

完成课程获得认证

开始学习
广告
© . All rights reserved.