软件工程导论第六章课
后答案
IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】
计算机科学与技术
第六章 习题答案
4、图给出的程序流程图代表一个非结构化的程序,问:
(1)为什么说它是非结构化的? (2)设计一个等价的结构化程序。
(3)在(2)题的设计中使用附加的标志变量flag了吗?若没有,再设计一个使用flag的程序;若用了,再设计一个不用flag的程序。
图 一个非结构化程序
答:(1)图示程序的循环控制结构有两个出口,不符合结构程序的定义,因此是非结构化的程序。
(2)设计的等价结构化程序盒图如下所示:
(3)在第(2)题中没有使用标志变量flag,设计使用附加的标志变量flag,将上述程序改成等价的结构化程序,如下盒图所示:
7、某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则等于手续费为交易金额的%;如果交易总金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加34元;如果交易总金额超过10000元,则基本手续费为交易金额的4%加上134元。当
每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的4%,否则附加手续费为基本手续费的1%。要求:
(1)用判定表表示手续费的计算方法。(2)用判定树表示手续费的计算方法。答:(1)用判定表表示手续费的计算方法如下所示: (2)用判定树表示手续费的计算方法如下所示:
8、画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题吗? CEXAMPLE LOOP:DOWHILEZ>0
A=B+1 IF?A>10
ELSE?Y=Z
THEN?X=A
END IF
IF?Y<5
THENPRINTX,Y
ELSEIFY=2
THENGOTOLOOP ELSEC=3
END?IF END?IF G=H+R END?DO IF?F>0
THENPRINTG
ELSEPRINTK
END?IF STOP
答:(1)该伪码程序的流程图及程序流图如下:
环形复杂度V(G)=流图中的边数-流图中的结点数+2=19-14+2=7
=流图中的区域数
=流图中判定结点数目+1=6+1=7
(2)有问题,算法中控制最外层循环的变量Z没有初始化,且在该循环内部未出现任何改变Z取值的语句。将导致程序中的WHILE循环部分要么不执行,要么死循环。
因篇幅问题不能全部显示,请点此查看更多更全内容