WHILE循环语句的翻译程序设计(简单优先法、输出四元式)
while的用法javawhile循环语句详解

while 的用法javawhile 循环语句详解java 循环语句:while 的用法while 循环语法语法:123 4 5 6 7 89[init_statement]//初始化循环指标while(test_expression){statement;[iteration_statement]//迭代循环指标}eg :1234 5 6 7 8 9 1011int count = 10;// 循环5次while( count <15 ){......count++;}do while 循环语法:123 4 5 6 7do{statement;[iteration_statement]//迭代循环指标}while(test_expression);二、while 循环详解在英文中“while”这个词的意思是“当”,而在 Java 程序设计中,也可以将其理解为“当”,其语法结构是:while (条件){目的; //一段代码}当条件为真时,进入循环。
示例:计算1+2+3+4......+100的结果。
1 2 3 4 5 6 7 8 9 public class control5{public static void main(String[] args){int a=1,result=0;while(a<=100){result+=a++;}System.out.println(result);}}输出结果:1 5050三、do/while 语句在学习 do/while 语句之前,先清楚 while 语句是如何工作的。
while 语句是先进行条件判断,再执行大括号内的循环体。
do/while 语句与 while 语句不同的是,它先执行大括号内的循环体,再判断条件,如果条件不满足,下次不在执行循环体。
也就是说,在判断条件之前,就已经执行大括号内的循环体。
示例:计算1+2+3+4......+100的结果。
WHILE循环语句的翻译程序设计(简单优先法,三地址输出)

目录1 问题域描述 (3)2 文法及属性文法的描述 (3)2.1 WHILE循环语句的文法 (3)2.2 WHILE循环语句的属性文法 (4)3 语法分析方法及中间代码形式的描述 (4)3.1语法分析方法 (4)3.2中间代码形式描述 (6)4 编译系统的概要设计 (7)4.1词法分析 (7)4.2语法制导翻译 (8)5 详细的算法描述 (8)5.1 文法设计 (8)5.2 算法描述 (8)5.3 源程序代码 (9)6 软件的调试过程和结果测试 (19)6.1调试过程 (19)6.2结果测试 (19)7 使用说明 (20)8 课设总结 (20)9 参考文献 (22)WHILE循环语句的翻译程序设计(简单优先法、输出三地址表示)1 问题域描述while循环语句的翻译程序设计(简单优先法,输出单地址表示),要求完成:(1)用C++语言正确编写程序,完成WHILE循环语句的翻译程序设计。
(2)求能正确进行词法分析,语法分析,并能正确的输出预期结果。
(3)根据指定的文法,判定程序的正确性。
本次课程设计中要求设计一个WHILE循环语句的词法﹑语法及语义分析程序,语法分析选择简单优先法,采用语法制导翻译输出中间代码三元式。
通过设计、编制、调试一个WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,实现功能。
while循环语句的格式为:while(P){do A},其中A为循环体,可为一个或多个赋值语句;P为循环控制条件。
while循环语句首先根据循环控制条件P进行判断,若满足条件则执行循环体A,否则执行下面的程序段;本次课程设计中系统首先要进行词法分析,即从左到右把源文件的字符序列逐个进行扫描,产生一个个的单词序列,作为语法分析的输入从而继续编译过程。
该程序的语法分析读入词法分析的结果,并判断输入语句是否满足while循环语句的文法所描述的形式。
通过简单优先法对语句进行分析,看是否能通过给定的输入串归约到文法的开始符号。
编译原理while语句的翻译

课程设计题目WHILE循环语句的翻译程序设计(简单优先法、输出四元式)学院计算机科学与技术学院专业计算机科学与技术专业班级1003班姓名刘颖指导教师李玉强2013 年 1 月11 日目录任务书 (2)1.系统描述 (3)2.文法及属性文法的描述 (3)3.语法分析方法的描述及分析表设计 (3)3.1.语法分析方法的描述 (3)3.2.优先关系表 (4)4.1.中间代码形式的描述 (4)4.2.中间代码序列的结构设计 (4)5.编译系统的概要设计 (4)6.详细的算法描述(流程图或伪代码) (5)6.1.主函数伪代码 (5)6.2.词法分析总控流程图 (5)6.3.语法分析 (5)7.源程序 (6)7.1.优先关系 (6)7.2.词法分析 (6)7.3.语法分析 (10)7.4.归约函数 (10)8.软件的测试方法和测试结果 (11)8.1.输入 (11)8.2.词法分析结果 (11)8.3.语法分析结果 (12)9.研制报告 (12)10.参考文献 (13)11.开发工具 (13)评分表 (14)课程设计任务书学生姓名:刘颖专业班级:计算机1003班指导教师:李玉强工作单位:计算机科学与技术学院题目: WHILE循环语句的翻译程序设计(简单优先法、输出四元式)初始条件:理论:学完编译原理课程,掌握一种计算机高级语言的使用。
实践:计算机实验室提供计算机及软件环境。
如果自己有计算机可以在其上进行设计。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)写出符合给定的语法分析方法的文法及属性文法。
(2)完成题目要求的中间代码四元式的描述。
(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。
(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
(5)设计报告格式按附件要求书写。
课程设计报告书正文的内容应包括:1 系统描述(问题域描述);2 文法及属性文法的描述;3 语法分析方法描述及语法分析表设计;4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;5 编译系统的概要设计;6 详细的算法描述(流程图或伪代码);7 软件的测试方法和测试结果;8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);9 参考文献(按公开发表的规范书写)。
编译原理课程设计——算术表达式、for、while语句转换为四元式

计算机与信息学院《操作系统与编译原理联合课程设计报告》专题:编译原理部分学生姓名:学号:专业班级:指导教师:2014 年 7 月一、设计目标设计一个语法制导翻译器,将算术表达式、for语句、while语句翻译成四元式。
要求先确定一个定义算术表达式、for语句、while语句的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。
对用户输入的任意一个正确的表达式,程序将其转换成四元式输出。
二、设计思路开发平台:Visual C++ MFC解决这个问题的方案分为以下几个步骤:1.将算数表达式、for语句、while语句转换为四元式的第一步为对读入的表达式进行处理,即删除不必要的空格、回车、换行等,保证之后的步骤能够顺利进行。
2.分析算术表达式、for语句、while语句的文法。
3.通过词法分析判断语句中的每个字符的类型,如:数字、字母、符号等。
4.建立每种文法的LR(0)分析表,通过每个文法的LR(0)分析表对相应的表达式进行语法分析。
5.在语法分析正确的情况下,通过语法分析的中间过程的符号栈输出四元式,四元式的形式为:(op arg1 arg2 result)。
(一)算术表达式转换为四元式将算术表达式转换为四元式首先考虑了括号的问题,对于不同的算术表达式第一步进行词法分析,即确定各种符号的位置。
而括号中的式子是优先级最高的,应该最先进行处理。
我使用了一个数组记录算术表达式中括号的位置,并且定义了first_cc和first_jj函数对括号内的乘除法和加减法分别进行处理。
后将括号内的式子以四元式的形式输出。
通过以上转换,已将原算术表达式中的括号中的内容使用大写字母’A’、’B’……等代替(其中定义声明了change函数,用来将括号部分替换为大写字母)。
新的式子中,只含有加减乘除以及赋值这四种运算,后根据优先级的不同,逐步生成四元式。
其算法流程图如右图所示。
WHILE循环语句的翻译程序设计.

WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)1 系统描述按照课程设计的要求,写一个能识别while循环语句的文法,通过一定的变换使它符合递归下降法的要求,然后按照这个文法编写一个程序,该程序能识别输入的语句是否符合while语句的文法,或者能不能通过文法的开始符号推导出该语句。
该程序应该包括词法分析器,能对输入的语句进行词法分析,然后再对结果进行语法分析。
词法分析器应能识别关键字,标示符,常量,操作符等。
该程序的语法分析器能对输入的语法进行分析,判断输入语句能否满足while循环语句的文法。
通过递归下降的方法对语句进行分析,看能否通过开始符号推导出来。
该程序的语义分析器就是对分析结果进行输出,要求输出结果是三地址形式的。
2 文法及属性文法的描述2.1文法描述语句 > ::= while (< 条件表达式 > (< 赋值语句 > | 语句 ><条件表达式> ::= (<标识符>|<无符号整数>)<条件运算符> (<标识符>|<无符号整数><标识符> ::= <字母> (<字母>|<数字><条件运算符> ::= > | < | =<无符号整数> ::= <数字>(<数字><赋值语句> ::= <标识符>=(<标识符> | <数字> <算术运算符> (<标识符> | <数字><算术运算符> ::= + | - | * | /<赋值语句> ::= <标识符>=<标识符> | <数字>2.2递归文法while语句文法:S -> while (B S | i=EB -> E relop Erelop -> < | = | >E -> E+E | E-E | E*E | E/E | (E | i | n在编写程序的时候用到的是递归下降法,而递归下降法对文法的要求是不能包含左递归,对上述的文法进行消除左递归之后,得到如下的递归文法:S -> while (B S | i=EB -> E relop Erelop -> < | = | >E -> (EF | iF | nFF -> +EF | -EF | *EF | /EF | ε2.3属性文法的描述产生式属性文法S -> while (B S1S.begin:=newlabel;S.next:=newlabel;B.true:=newlabel;B.false:=S.next;S1.next:=S.begin;S.code:=gen(S.begin, ‘:’ || B.code||gen(S.true, ‘:’ ||S1.code || gen(‘goto’,S.begin ||gen(B.false, ‘:’|| gen(‘goto Lnext’;B -> E1 relop E2 B.place:=newlabel;B.code:=E1.code || relop.code ||E2.code ||gen(B.place ‘:=’ , E1.place , r elop.place , E2.place;relop -> < | =relop.place:=newlabel;| >relop.code:=gen(‘<’||gen(‘=’||gen(‘>’;E -> (E1F E.place:=newlabel;E.code:=E1.code ||F.code ||gen(E.place ‘:=’ ,‘(’, E1.place , ‘’, F.place;E -> iF E.palce:=newlabel;E.code:=i.code ||F.code ||gen(E.palce ‘:=’ ,i.place , F.place;E -> nF E.place:=newlabel;E.code:=n.code ||F.code ||gen(E.place ‘:=’ , n.place , F.place;F -> +EF1 F.place:=newlabel;F.code:=E.code || F1.code ||gen(F.place‘:= + ’, E.place , F1.place;F -> -EF1 F.place:=newlabel;F.code:=E.code || F1.code ||gen(F.place‘:= - ’, E.place , F1.place;F -> *EF1 F.place:=newlabel;F.code:=E.code || F1.code ||gen(F.place‘:= * ’, E.place , F1.place;F -> /EF1 F.place:=newlabel;F.code:=E.code || F1.code ||gen(F.place‘:= / ’, E.place , F1.place;F -> ε F.place:=newlabel;F.code:=gen(F.code‘:= ε’;图1 属性文法3 语法分析方法描述按照递归下降分析技术,递归下降识别程序是由一组子程序组成,每个子程序对应于一个非终结符号。
控制语句的翻译四元式例题及答案

控制语句的翻译四元式例题及答案
1. 例题:if语句
高级语言代码:
python
if x > 5:
y = x + 10
else:
y = x - 10
翻译四元式:
1: if x > 5 goto 4
2: y = x + 10
3: goto 5
4: y = x - 10
5: (end if)
答案解析:
- 第1行表示条件判断,如果x大于5,则跳转到第4行执行。
- 第2行为if语句为真时的语句,将x加10赋值给y。
- 第3行为跳转到if语句结束位置的标记。
- 第4行为if语句为假时的语句,将x减10赋值给y。
- 第5行为if语句结束位置的标记。
2. 例题:while循环语句
高级语言代码:
python
while x > 0:
y = y + x
x = x - 1
翻译四元式:
1: (start while)
2: if x > 0 goto 4
3: goto 5
4: y = y + x
5: x = x - 1
6: goto 2
7: (end while)
答案解析:
- 第1行为while循环的起始位置。
- 第2行为条件判断,如果x大于0,则跳转到第4行执行循环体内的语句。
- 第3行为否则跳转到while循环结束位置的标记。
- 第4行为循环体内的语句,将y加上x的值。
- 第5行为循环体内的语句,将x减1。
- 第6行为跳转回while循环起始位置的标记。
- 第7行为while循环结束位置的标记。
while循环的解释

while循环的解释
嘿,朋友!你知道什么是 while 循环吗?这玩意儿就像是一场永不
停歇的冒险!比如说,你想象一下,你在一个超级大的迷宫里,只要
你还没找到出口,你就得一直走啊走(这就好比 while 循环的条件没满足,就一直执行里面的代码)。
咱就拿一个简单的例子来说吧。
假设你想让电脑一直给你报数,直
到报到10 为止。
那你就可以用while 循环来实现呀!代码就像是这样:int i = 1; while (i <= 10) { System.out.println(i); i++; } 看到没,只要 i 还
小于等于 10,它就会不停地执行里面的输出 i 和让 i 加 1 的操作,这不就跟在迷宫里一直找路一样嘛!
哎呀呀,while 循环可太有用啦!它能让电脑像个不知疲倦的小机
器人一样,按照我们设定的规则一直工作下去。
你想想看,如果没有while 循环,那我们得写多少重复的代码呀!
再给你举个例子,比如说你要做一个游戏,游戏里的怪物要一直出现,直到玩家打败它为止。
这时候,while 循环不就派上用场了嘛!只
要怪物还活着,就一直让它出现,多方便呀!
你说 while 循环是不是超级厉害?它就像是我们编程世界里的一把
神奇钥匙,能打开好多好多有趣的大门!所以呀,一定要好好掌握它哦,朋友!我觉得吧,while 循环就是编程中不可或缺的一部分,没有它,很多事情都没法那么轻松地实现啦!。
WHILE语句的翻译—递归子程序法—三地址表示——编译原理课程设计报告

课程设计题目WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)学院计算机科学与技术学院专业计算机科学与技术班级0806姓名张方纪指导教师郭羽成2010 年 1 月7 日课程设计任务书学生姓名:张方纪专业班级:计算机0806班指导教师:郭羽成工作单位:计算机科学与技术学院题目: WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)初始条件:理论:学完编译课程,掌握一种计算机高级语言的使用。
实践:计算机实验室提供计算机及软件环境。
如果自己有计算机可以在其上进行设计。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)写出符合给定的语法分析方法的文法及属性文法。
(2)完成题目要求的中间代码三地址表示的描述。
(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。
(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
(5)设计报告格式按附件要求书写。
课程设计报告书正文的内容应包括:1 系统描述(问题域描述);2 文法及属性文法的描述;3 语法分析方法描述及语法分析表设计;4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计;5 编译系统的概要设计;6 详细的算法描述(流程图或伪代码);7 软件的测试方法和测试结果;8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);9 参考文献(按公开发表的规范书写)。
时间安排:设计安排一周:周1、周2:完成系统分析及设计。
周3、周4:完成程序调试及测试。
周5:撰写课程设计报告。
设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。
设计报告书收取时间:设计周的次周星期一上午10点。
指导教师签名: 2010年 11月 23日系主任(或责任教师)签名: 2010年 11月 23日WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)1任务使用C++语言编写一个while循环语句的翻译程序,使用递归下降法进行语法分析,输出三地址码表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WHILE循环语句的翻译程序设计(简单优先法、输出四元式)1 需求说明或问题描述1.1 问题描述对C++中while循环语句的理解及分析,通过编译中的词法分析、语法分析、语义分析及中间代码生成等编译过程,用简单优先分析法分析并翻译while语句。
1.2 需求说明1 写出符合给定的语法分析方法的文法及属性文法2 完成题目要求的中间代码四元式的描述3 写出给定的语法分析方法的思想,完成语法分析及语义分析程序设计4 设计若干用例,上机通过测试2 文法及语法设计2.1文法及属性文法:文法G=(V N ,V T ,P ,S)其中V N={S , B, E, C, A, B, P, T} V T={w, (, ), { ,}, i, ;}P={S -> w(B){E}E -> CC -> CAC -> AA -> iPAA -> i;P -> +|-|*|/B -> iTiB-> iT -> >|<|>=|<=|==}2.2 语法分析方法描述及语法分析表设计2.2.1 语法分析方法描述:简单优先分析法是按照文法符号(终极符和非终极符)的优先关系确定句柄的。
基本思想可设计如下,首先根据已知优先文法构造相应优先关系矩阵,并将文法的产生式保存,设置符号栈S,步骤如下:(1)将输入符号串a1a2…a n#依次逐个存入符号栈S中,直到遇到栈顶符号a i的优先性>下一个待输入符号a j为止。
(2)栈顶当前符号a i为句柄尾,由此向左在栈中找句柄的头符号a k,即找到a k-1<a k为止。
(3)由句柄a k...a i在文法的产生式中查找右部为a k…a i的产生式,若找到则用相应左部代替句柄,若找不到则为出错,这时可断定输入串不是该文法的句子。
(4)重复上述(1)、(2)、(3)步骤直到规约完输入符号串,栈中只剩文法的开始符号为止。
2.2.2 优先关系矩阵:3 中间代码3.1中间代码形式的描述中间代码通过四元式给出。
四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG2及运算结果RESULT。
运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。
3.2 中间代码序列的结构设计通过词法分析及语法分析之后,取出其中的运算表达式。
对表达式进行分析。
其中,先乘除后加减,先运算括号内的。
如a=b*c+b*d 的四元式表示如下:1) (*,b, c, t1)2) (*, b, d, t2)3) (+, t2, t3, t3)4) (=, t3, -, a)4 编译系统的概要设计及部分流程图1 通过程序,在1.txt文本中输入while语句。
对文本进行扫描,通过词法分析函数cifa()对输入的while语句进行词法分析。
2 将已算好的优先关系矩阵放至程序中,通过函数Guanxi()输出优先关系矩阵到guanxi.txt文件中。
3 对已进行词法分析的while语句进行语法分析,分析函数为JanDan()。
其中包含对错误语句的报错处理。
同时,对可以进行四元式输出的运算表达式进行输出。
4 通过四元式输出函数Siyuan()将运算表达式表示为四元式的形式,输出到siyuan.txt文件中。
整体框图:词法分析程序框图5 源程序与执行结果(含测试方法和测试结果)5.1 源程序5.1.1 词法分析函数void cifa()//词法分析程序{char a[100];char ch;ifstream infile("1.txt",ios::in);for(int i=0;i<100;i++){infile.get(ch);if(ch!='#')a[i]=ch;else {a[i]=ch;break;}}i=0;int m;cout<<"词法分析结果见cifa.txt文件内!"<<endl;while(i<100){m=Judge(a[i]);//第一个字符的形式if(m==1) i=Keyword(i,a);//关键字else if (m==2) i=Numb(i,a);//数字else if (m==3) i=YunSuan(i,a);//运算符else if (m==4) i=JieFu(i,a);//界符else if (m==5) i++;//空格else if (m==6) i++;//回车else if (m==7) return;//“#”号else break;}}5.1.2 简单优先法void JanDan(int Q){cout<<"简单优先法部分步骤输出到jiandan.txt文件中!"<<endl;coutj<<"简单优先法,部分步骤:"<<endl;S1="w(B){E}";//产生式E1="C";C1="CA";C2="A";A1="iPA";A2="i;";B1="iTi";B2="i";string str2;for(t=0;t<Q;t++){if(JD[t]=="while")R[t]='w';else if(JD[t]=="(")R[t]='(';else if(JD[t]==")")R[t]=')';else if(JD[t]=="{")R[t]='{';else if(JD[t]=="}")R[t]='}';else if(JD[t]==";")R[t]=';';elseif(JD[t]=="+"||JD[t]=="-"||JD[t]=="*"||J D[t]=="/"||JD[t]=="=")R[t]='P';elseif(JD[t]==">"||JD[t]=="<"||JD[t]==">="|| JD[t]=="<="||JD[t]=="==")R[t]='T';else R[t]='i';}R[t]='#';// cout<<"R="<<R<<endl;int a1=1,m,z,x;int n;t=1;char a[50]="\0";a[0]=R[0];loop4:while(t<=Q){z= Panduan(a[a1-1],R[t]);if(z==0||z==-1){coutj<<setw(20)<<a;x=t;coutj<<" ";while(R[x])coutj<<R[x++];coutj<<endl;a[a1]=R[t];a1++;t++;}else if(z==1){m=0;a1--;t--;coutj<<setw(20)<<a;goto loop5;}else if(z==2){coutj<<"a["<<a1-1<<"]="<<a[a1-1] <<" "<<"R["<<t<<"]"<<R[t]<<endl;coutj<<"1错误,这不是文法的句子!"<<endl;return;}}loop5:if((a1-m-1)>=0){z=Panduan(a[a1-m-1],a[a1-m]);}else z=-1;if(z==2){coutj<<"2错误,这不是文法的句子"<<endl;return;}else if(z==0||z==1){m++;goto loop5;}else if(z==-1){n=a1-m;str="\0";for(;m>=0;m--){str2="\0";str2=a[a1-m];str=str+str2;a[a1-m]='\0';}if(str==S1){a[n]='S';x=t;coutj<<" ";while(R[x])coutj<<R[x++];coutj<<setw(20)<<"需要归约的是:"<<str<<endl;coutj<<setw(20)<<a;coutj<<setw(20)<<"归约结束!"<<endl;return;}else if(str==E1){a[n]='E';a1=n;a1++;t++;x=t;coutj<<" ";while(R[x])coutj<<R[x++];coutj<<setw(20)<<"需要规约的是:"<<str<<endl;}else if(str==C1||str==C2){a[n]='C';a1=n;a1++;t++;x=t;coutj<<" ";while(R[x])coutj<<R[x++];coutj<<setw(20)<<"需要规约的是:"<<str<<endl;}else if(str==A1||str==A2){a[n]='A';a1=n;a1++;t++;Siyuan(str);x=t;coutj<<" ";while(R[x])coutj<<R[x++];coutj<<setw(20)<<"需要规约的是:"<<str<<endl;}else if(str==B1||str==B2){a[n]='B';a1=n;a1++;t++;Siyuan(str);x=t;coutj<<" ";while(R[x])coutj<<R[x++];coutj<<setw(20)<<"需要规约的是:"<<str<<endl;}else{coutj<<" "<<"3错误,归约失败!"<<endl;return;}goto loop4;}}5.1.3 四元式输出void Siyuan(string str){//cout<<"str="<<str<<endl;int m=0,n=0;while(str[m])m++;if(str[m-1]==';')//对A{if(S[t-u-2]==0){couts<<"T"<<j<<":(";couts<<"=,"<<"T"<<j<<","<<JD[t-u-2]<<",T"<<j<<")"<<endl;j++;}else{couts<<"T"<<j<<":(";couts<<"=,"<<"T"<<j<<","<<S[t-u-2]<<",T"<<j<<")"<<endl;j++;}u=u+3;}else if(str[m-1]=='i')//对B{if(S[t-3]==0&&S[t-1]!=0){couts<<"B"<<j<<":(";couts<<JD[t-2]<<",";couts<<JD[t-3]<<",";couts<<S[t-1]<<",B"<<j<<")"<<en dl;j++;}else if(S[t-3]!=0&&S[t-1]!=0){couts<<"B"<<j<<":(";couts<<JD[t-2]<<",";couts<<S[t-3]<<",";couts<<S[t-1]<<",B"<<j<<")"<<en dl;j++;}else if(S[t-3]==0&&S[t-1]==0){couts<<"B"<<j<<":(";couts<<JD[t-2]<<",";couts<<JD[t-3]<<",";couts<<JD[t-1]<<",B"<<j<<")"<<e ndl;j++;}else if(S[t-3]!=0&&S[t-1]==0){couts<<"B"<<j<<":(";couts<<JD[t-2]<<",";couts<<S[t-3]<<",";couts<<JD[t-1]<<",B"<<j<<")"<<e ndl;j++;}}else if(str[m-1]=='A')//对A{if(S[t-u-4]==0){couts<<"T"<<j<<":(";couts<<JD[t-u-3]<<",";couts<<JD[t-u-4]<<",T"<<j-1<<",T "<<j<<")"<<endl;j++;}else{couts<<"T"<<j<<":(";couts<<JD[t-u-3]<<",";couts<<S[t-u-4]<<",T"<<j-1<<",T" <<j<<")"<<endl;j++;}u=u+3;}}5.2 执行结果5.2.1 执行方法:编译,链接,运行。