(完整版)软件工程第六章答案_第1页
(完整版)软件工程第六章答案_第2页
(完整版)软件工程第六章答案_第3页
(完整版)软件工程第六章答案_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、作业 4 参考答案1假设只有SEQUENCE和DO_WHILE两种控制结构,怎样利用它们完成IF_THEN_ELSE操作?答:转化如下:K = 1DO WHILE(条件程序块 1K=K+1END DODO WHILE( (.NOT.条件 程序块 2K=K+1END DO2假设允许使用 SEQUENCE 和 IF_THEN_ELSE 两种控制结构,怎样利用它们完成 DO_WHILE 操作?答:转化如下;label:IF ( 条件 ) THEN程序块GOTO labelELSE程序块END IF3画出下列伪码程序的程序流程图和盒图:STARTIFpTHENWHILEqDOfENDDOELSEBLO

2、CKgnENDBLOCKENDIFSTOP答:( 1)流程图如图4-1 所示:开始pgq循环 WHILE pnfq循环停止图 4-1 从伪码变成的程序流程图( 2)该程序的盒图如图 4-2 所示:PFTqgfn图 4-2 从伪码变成的程序盒图4下图给出的程序流程图代表一个非结构化的程序,请问:( 1)为什么说它是非结构化的?( 2)设计一个等价的结构化程序。( 3)在( 2)题的设计中你使用附加的标志变量flag 吗?若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag 的程序。答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图示的程序的循

3、环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。( 2)使用附加的标志变量 flag ,至少有两种方法可以把该程序改造为等价的结构化程序,图 4-3 描绘了等价的结构化程序的盒图。flag=TRUEflag=TRUEp AND flagFpTgflag=FALSEgqTFflag=FALSE(NOT q)OR(NOT flag)( a)解法 1( b)解法 2图 4-3与该图等价的结构化程序(用flag)(3)不使用 flag 把该程序改造为等价的结构化程序的方法如图4-4 所示。FpTg(NOT q)OR(NOT flag)图4-4与该图等价的结构化程序(不用fl

4、ag )5研究下面的伪代码程序:LOOP : Set I to (START+FINISH)/2If TABLE(I)=ITEM goto FOUNDIf TABLE(I)<ITEM Set START to (I+1)If TABLE(I)>ITEM Set FINISH to (I-1)If (FINISH-START)>1 goto LOOPIf TABLE(START)=ITEM goto FOUNDIf TABLE(FINISH)=ITEM goto FOUNDSet FLAG to 0Goto DONEFOUND: Set FLAG to 1DONE:Exit(1

5、) 画出程序流程图。(2) 程序是结构化吗?说明理由。(3) 若程序是非结构化的,设计一个等价的结构化程序并且画出流程图。(4) 此程序的功能是什么?它完成预定功能有什么隐含的前提条件。答:( 1)该程序流程图如下:开始I= (START+FINISH)/2TTABLE(I)=ITEMFTTTABLE(I)<ITEMStart=I+1FTTABLE(I)>ITEMFinish=I-1F(FINISH-START)>1FTTABLE(START)=ITEMEFTTABLE(FINISH)=ITEMFFLAG=0FLAG=1结束( 2)该程序不是结构化的,结构化的程序只有一个入口

6、和一个出口,而该程序的流程途中有两个出口。( 3)等价的结构化程序的流程图如下:开始Flag=0(F-S)>1&& flag=0TI=(F+S)/2FFTable(I)=itemTable(I)<itemFTTFlag=1S=I+1F=I-1结束( 4)此程序有二分查找的功能,它完成预定功能的隐含前提条件是现有序列为从小到大顺序排好的有序序列。6用 Ashcroft_Manna技术可以将非结构化的程序转化为结构化程序,图6.19 是一个转换的例子。(1) 能否从这个例子总结出 Ashcroft_Manna 技术的一些基本方法?(2) 进一步简化 6.19(b) 给出的结构化设计。答:( 1)从这个例子中看出, Ashcroft_Manna技术的基本方法是,当待改造的序含有嵌套的非结构化的 IF 语句时,改造后的程序中增加DO-CASE语句和 DO-UNTIL语句,并增加一个辅助变量 I , I 的初始值为。最外层的IF 语句在 I= 时执行,执行完这个 IF 语句后把 I 赋值为随后应该执行的内层 IF 语句所对应的 CASE标号值。 DO-CASE语句的最大分支数(可执行的最大标号值)等于 IF 语句的个数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论