1 / 7 第七章习题答案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 2 / 7 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语句,并且是从一个循环体内转到循环体外的一个条件语句内部
3 / 7 ⑶ 修改后的伪码如下:YES YES 开 始输入 N 输入关键字WORD I=0 MATCH=0 循环 N+1 次I=I+1 I 控制搜索总次数的计数器MATCH控制搜索成功次数的计数器遇到的字 = KYEWORD
MATCH=MATCH+1 保存 MATCH到缓冲MATCH=N
NO N=0 调子程序打印缓冲器信息打印“没有匹配”结束NO YES 图 2
1 4 / 7 INPUT N,T 输入 N INP