题目
解答
(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) 值正好等于该程序的独立路径的条数。