一個用於構造 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.