软件工程导论--第七章课后答案 联系客服

发布时间 : 星期四 文章软件工程导论--第七章课后答案更新完毕开始阅读

第七章 习题答案

2.研究下面给出的伪码程序,要求: ⑴ 画出它的程序流程图 。

⑵ 它是结构化的还是非结构化的?说明你的理由。 ⑶ 若是非结构化的,则

(a) 把它改造成仅用三种控制结构的结构化程序 ; (b) 写出这个结构化程序的伪码; (c) 用盒图表示这个结构化程序。 ⑷ 找出并改正程序中的逻辑错误 。

COMMENT: PROGRAM SEARCHES FOR FIRST N REFERENCES

TO A TOPIC IN AN INFORMATION RETRIEVAL SYSTEM WITH T TOTAL ENTRIES INPUT N

INPUT KEYWORD(S) FOR TOPIC I=0 MATCH=0

DO WHILE I≤T

I=I+1

IF WORD=KEYWORD THEN MATCH=MATCH+1

STORE IN BUFFER

END

IF MATCH=N

THEN GOTO OUTPUT

END END

IF N=0

THEN PRINT ”NO MATCH”

OUTPUT: ELSE CALL SUBROUTINE TO PRINT BUFFER

INFORMATION

END

解:⑴ 程序流程图(如图2.1所示)

⑵ 此程序是非结构化的,它有一个GOTO语句,并且是从一个循环体内转到循环体外的一个条件语句内部。

YES 遇到的字= KYEWORD? 循环N+1次 I=I+1 I=0 MATCH=0 I控制搜索总次数的计数器 MATCH控制搜索成功次数的计数器 开 始 输入N 输入关键字WORD NO YES MATCH=MATCH+1 保存MATCH到缓冲

⑶ 修改后的伪码如下:

结束 图2.1

调子程序打印缓冲器信息 MATCH=N? NO N=0 YES 打印“没有匹配” INPUT N,T 输入 N

INPUT KEYWORD(S) FOR TOPIC 输入有关话题的关键字 OPEN FILE 打开文件 I=0 MATCH=0

DO WHILE I≤T 循环—最多可做T次 I=I+1

READ A WORD OF WORD 从文件里读一个字到变量WORD IF WORD=KEYWORD THEN MATCH=MATCH+1

IF MATCH=N THEN EXIT 搜索到了N个关键字,就跳出循环 END IF END IF END DO IF MATCH =0

THEN PRINT ”NO MATCH” 若MATCH =0就打印“没有相匹配” ELSE PRINT “共搜索到”;

MATCH;“个匹配的关键字” 否则打印信息 END IF

修改后的程序框图(盒图)