软件工程第三章习题及参考答案 联系客服

发布时间 : 星期日 文章软件工程第三章习题及参考答案更新完毕开始阅读04ae274a102de2bd97058844

8. 答:(1)从该伪码程序转变成的程序流程图示于图3.22中。

(2)由该伪码转变成的盒图如图3.23所示。

9.答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。图3.5所示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。

(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图3.24所示盒图描绘了等价的结构化程序。

(3)不使用flag把该程序改造为等价的结构化程序的方法如图3.25所示。

10. 答:(1)根据这个伪码程序画出的程序流程图如图3.26所示。

(2)这个程序是非结构化的。因为在图3.26中“印出缓冲区的内容”这个处理框有两个入口;此外,循环结构有两个出口:I≤T为假和MATCH=N为真时都结束循环。

(3)仅用3种控制结构的等价的结构化程序的伪码如下: INPUTN

INPUTKEYWORD(S)FORTOPIC

I=0 MATCH=0

DOWHILE(I≤T)and(MATCH

IFWORD=KEYWORD THENMATCH=MATCH+1 STOREINBUFFER END END IFN=0

THENPRINT″NOMATCH″

ELSECALLSUBROUTINETOPRINTBUFFER INFORMATION END

图3.27所示盒图描绘了上面给出的结构化程序。

(4)该程序逻辑中有两个错误。

第一个错误是WHILE循环条件I≤T:根据这个条件,当I=T时应该执行一遍循环体。循环体的第一条语句是I=I+1,即把I的值加1使之变成T+1,但是,该检索系统总共只有T个词条(ENTRY),下标I变成T+1将出现“越界”错。因此,应该把循环条件改为I

第二个错误是印出“无匹配”的条件N=0:该程序使用变量MATCH存放匹配次数,因此,印出“无匹配”的条件应该是MATCH=0。

注意,即使把该程序改造成了结构化的程序(见第3小题的答案),也仍然应该像上述的那样改正这两个错误。