有穷自动机的最小化c语言代码,无符号数有穷自动机实现.doc
實驗報告成績: 指導教師審核(簽名): 年 月 日
預習報告□ 實驗報告□
無符號數的有窮自動機的實現
(一)實驗目的
無符號數的有窮自動機的實現目的是使學生掌握文法的形式描述,窮自動機的概念。將文法轉換成有窮自動機的方法,理解出錯處理程序思想,如何用狀態矩陣實現一個窮自動機的機內表示。
(二)實驗內容
1.無符號數的BNF描述
( d | . | e
(d | . | e |ε
( d
e | d | ε
( d | + | -
( d
( d | ε
2.將G[]文法轉換成有窮自動機。
3.構造狀態矩陣;將有窮自動機的狀S1 S2 ……Sn及輸入的字a1 a2 ……am 構成一個n*m的矩陣。
4.用狀態矩陣設計出一個詞法分析程序。
5.掃描無符號數,根據文法給出無符號數出錯的位置。
(三)實驗要求
1.學生課前要認真閱讀實驗指導,理解實驗內容與相關理論知識的關系,并完成預習報告
2.用C語言或其它高級語言編寫程序
3.寫出實驗報告
實驗報告成績: 指導教師審核(簽名): 年 月 日
預習報告□ 實驗報告□
無符號數的有窮自動機的實現
(一)實驗目的
通過上機實習,熟悉詞法分析程序所用的工具自動機,進一步理解自動機理論。掌握文法轉換成自動機的技術及有窮自動機實現的方法。
(二)實驗內容
1.無符號數的BNF描述
( d | . | e
(d | . | e |ε
( d
e | d | ε
( d | + | -
( d
( d | ε
2.無符號數的有窮自動機實現的思想
用0-----表示無符號數; 用1-----表示余留無符號數;
用2----表示十進制小數;用3-----表示余留十進制小數;
用4-----表示指數部分; 用5-----表示整指數;
用6-----表示余留整指數。
輸入無符號數序列,從左到右掃描,遇到“#”號結束掃描。設一個字符數組,接收輸入的無符號數,對輸入的無符號數逐一進行分析,用一個中間變量接收當前字符。當前字符值發生錯誤時,輸出錯誤信息;當前字符值正確時,分析下一個字符,反復判斷,直至分析完畢。
3.無符號數的有窮自動機(Z表示結束符)
無符號數有窮自動機由圖1所示。
圖1 有窮自動機
4.無符號數有窮自動機的狀態轉換矩陣
無符號數有窮自動機的狀態轉換矩陣由表1所示。
de·+-ε0142ΦΦΦ1142ΦΦZ23ΦΦΦΦΦ334Φ5ΦZ46ΦΦΦ5Φ56ΦΦΦΦΦ66ΦΦΦΦZ
(三)實驗要求
1.學生課前要認真閱讀實驗指導,理解實驗內容與相關理論知識的關系,并完成預習報告
2.用C語言或其它高級語言編寫程序
3.寫出實驗報告
(四)程序流程圖
(五)程序代碼
// zhangtianyou.cpp : 定義控制臺應用程序的入口點。
//
#include "stdafx.h"
#include
#define LEN 30
int main()
{
char number[LEN]={0};
lab0:int i=0;
printf("Please input a number:\n");
scanf("%s",number);
if(number[i]=='#')
{
printf("input this number
總結
以上是生活随笔為你收集整理的有穷自动机的最小化c语言代码,无符号数有穷自动机实现.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP ECC连接SAP PI系统配置
- 下一篇: shell中和||的用法