软件工程第6章课后作业参考答案.docx第六章 :STARTIF p THENWHILE q DOfEND DOELSEBLOCKgnEND BLOCKEND IFSTOP答:(1)流程图如图 6-1所示:开始pg q循环WHILEpn fq循环停止6-1从伪码变成的程序流程图2)该程序的盒图如图6-2所示:FPTqgfn图6-,请问:(1)为什么说它是非结构化的?(2)设计一个等价的结构化程序。(3)在(2)题的设计中你使用附加的标志变量 flag吗?若没用,请再设计一个使用 flag的程序;若用了,再设计一个不用 flag的程序。答:(1)通常所说的结构化程序, 是按照狭义的结构程序的定义衡量, 符合定义规定的程序。图示的程序的循环控制结构有两个出口 ,显然不符合狭义的结构程序的定义,因此是非结构化的程序。2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图6-3描绘了等价的结构化程序的盒图。flag=TRUEflag=TRUEpANDflagFpTgflag=FALSEgqTFflag=FALSE(NOTq)OR(NOTflag)(a)解法1(b)解法2图6-3与该图等价的结构化程序(用flag)(3)不使用flag把该程序改造为等价的结构化程序的方法如图6-4所示。FpTg(NOTq)OR(NOTflag)图6-4与该图等价的结构化程序(不用 flag), 计算它的环形复杂度。 你觉得这个程序的逻辑有什么问题吗?C EXAMPLELOOP:DOWHILE X>0A=B+1IFA>10THENX=AELSEY=ZENDIFIFY<5THENPRINTX,YELSEIFY=2THENGOTOLOOPELSEC=3ENDIFENDIFG=H+RENDDOIFF>0THENPRINTGELSEPRINTKENDIFSTOP答:(1)该伪码的流程图如图 6-8所示:开始NZ>0?YA=B+1N YA>10?Y=Z X=AN YY<5?YY=2? PrintX,YNC=3G<=H+RN YF>0?PrintK Print
软件工程第6章课后作业参考答案 来自淘豆网www.taodocs.com转载请标明出处.