题目


解答
(1) 画出相应的程序控制流图

(2) 给出控制流图的邻接矩阵;
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| 2 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
| 3 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| 5 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
| 6 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 7 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
(3) 计算 McCabe 环形复杂度;
解1:
图中 m = 10,n = 7,故V(G) = m - n + 2 = 5
解2:
图是平面的且有5个面,故V(G) = 5
解3:
图中有4个单条件判定节点1,2,4,5,故V(G) = 4 + 1 = 5
(4) 找出程序的一个独立路径集合。
- 1-2-4-7
- 1-2-4-5-7
- 1-2-4-5-6-7
- 1-3-4-7
- 1-2-3-4-7
参考
(1)


(3)

(4)
一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G) 值正好等于该程序的独立路径的条数。

本文详细解析了程序控制流图的构建方法,包括邻接矩阵的生成及McCabe环形复杂度的计算。并通过实例展示了如何找出程序的所有独立路径,为软件测试和维护提供了关键指导。
462

被折叠的 条评论
为什么被折叠?



