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