第5章《结构化实现》习题解答
第2题:研究下面给出的伪码程序,要求:
⑴ 画出它的程序流程图
⑵ 它是结构化的还是非结构化的?说明你的理由
⑶ 若是非结构化的,则:
a.把它改造成仅用三种控制结构的结构化程序
b.写出这个结构化程序的伪码
c.用盒图表示这个结构化程序
⑷ 出并改正程序中的逻辑错误
COMMENT: PROGRAM SEARCHES FOR FIRST N REFERENCES
TO A TOPIC IN AN INFORMATION RETRIEVAL
SYSTEM WITH T TOTAL ENTRIES
程序在系统恢复的信息中搜索前N个关键词,最多搜索T次
INPUT N                          输入 N
INPUT KEYWORD(S) FOR TOPIC    输入有关话题的关键字
I=0         
MATCH=0
DO WHILE I≤T                    循环—最多可做T+1次
I=I+1
IF WORD=KEYWORD 
  THEN MATCH=MATCH+1
    STORE IN BUFFER
END
IF MATCH=N
  THEN GOTO OUTPUT          搜索到了N个关键字,就跳出循环
                                (转到了条件语句内部)
END
END
IF N=0
  THEN PRINT ”NO MATCH”        若N=0就打印“没有相匹配”
OUTPUT:  ELSE CALL SUBROUTINE TO PRINT BUFFER INFORMATION
END
=
打印“没有匹配”
=
调子程序打印缓冲器信息
N=0?
MATCH=N?
保存MATCH到缓冲器
MATCH=MATCH+1
=
i=i+1
循环 T+1次
MATCH=0    控制搜索成功次数的计数器
i=0        控制搜索总次数的计数器
输入关键字 KYEWORD
输入N
:⑴ 程序流程图:
遇到的字= KYEWORD?
结束
⑵ 此程序是非结构化的,它有一个GOTO语句,并且是从一个循环体内转到循环体外的一个条件语句内部。
⑶ 修改后的伪码如下:
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 FILE TO 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
修改后的程序框图(盒图)
输入值N和T
输入关键字到变量 KYEWORD
打开文件
I和MATCH赋初值0
DO WHILE I≤T
I=I+1
从文件里读一个字到变量WORD
WORD=KEYWORD
T
F
MATCH=MATCH+1
MATCH=N
T
F
跳出循环
MATCH =0
T
F
打印信息“共有”MATCH“个字”
打印信息“没有匹配的字”
⑷ 程序中的错误:语句“IF WORD=KEYWORD”里的变量“WORD”没有预先赋值。
程序中没有预先输入T的值
“N=0”应该是“MATCH=0”
第4题:回答下列问题:
⑴ 什么是模块测试和集成测试?
输入A,B,C
A>5
>
X=10
X=1
B>10
>
Y=20
Y=2
C>15
>
Z=30
Z=3
打印X,Y,Z
Start
do while语句流程图
Stop
⑶ 设计下面伪码程序的语句覆盖和条件覆盖测试用例:
START
INPUT(A,B,C)
IF A>5
  THEN X=10
ELSE X=1
END IF
IF B>10
  THEN Y=20
ELSE Y=2
END IF
IF C>15
  THEN Z=30
ELSE Z=3
END IF
PRINT(X,Y,Z)
STOP
   
:⑴ 模块测试是:对每个单独的模块,分别用黑盒和白盒测试技术,测试它的功能是否正确,检查模块控制结构中的特定路径并发现最大数量的错误。
集成测试是:把模块装配在一起形成完整的软件包,在装配的同时进行测试。
⑶ 此程序的语句覆盖用例:①A=5,B=10,C=15;②A=6,B=11,C=16
    条件覆盖用例为:同于语句覆盖用例

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。