38.(9分)下面为一个程序的代码 void fun(int n,int t) 1{ 2 int x=0; 3 int y=0; 4 while(n-->0) 5 { 6 if(t ==0) 7 x=y+20; 8 else 9 if(t==1) 10 x=y+100; 11 else 12 x=y+200 13 } 14} 要求(1)给出该段代码的控制流图; (2)主动向控制流图的环复杂度V(G);
时间: 2023-11-28 17:03:41 浏览: 55
(1) 该段代码的控制流图如下:
```
+--------------+
| start |
+--------------+
|
| n-- > 0
v
+--------------+
| if(t==0) |
| x=y+20 |
+--------------+
|
| else if(t==1)
v
+--------------+
| x=y+100 |
+--------------+
|
| else
v
+--------------+
| x=y+200 |
+--------------+
|
v
+--------------+
| end |
+--------------+
```
(2) 根据上面的控制流图,可以通过公式计算出其环复杂度为 `V(G) = E - N + 2 = 5 - 4 + 2 = 3`。其中,E 为图中的边数,N 为图中的节点数。
相关问题
38.(9分)下面为一个程序的代码 void fun(int n,int t) 1{ 2 int x=0: 3 int y=0; 4 while(n-->0) 5 星 6 if(t=0) 1 x=y+20; 8 else 9 if(t=1) 10 X=y+100; 11 else 12 x=y+200 13 3 143 要求(1)给出该段代码的控制流图: (2)主动向控制流图的环复杂度V(G); (3)写出独立路径。
(1) 该段代码的控制流图如下:
```
+--------------+
| start |
+--------------+
|
| n-- > 0
v
+--------------+
| if(t=0) |
| x=y+20 |
+--------------+
|
| else if(t=1)
v
+--------------+
| X=y+100 |
+--------------+
|
| else
v
+--------------+
| x=y+200 |
+--------------+
|
v
+--------------+
| end |
+--------------+
```
(2) 根据上面的控制流图,可以通过公式计算出其环复杂度为 `V(G) = E - N + 2 = 5 - 4 + 2 = 3`。其中,E 为图中的边数,N 为图中的节点数。
(3) 独立路径:start -> if(t=0) -> x=y+20 -> end,start -> if(t=1) -> x=y+100 -> end,start -> else -> x=y+200 -> end。
山,开 出 每 个 测 38.(9分)下面为一个程序的代码 void fun(int n, int t) 1{ 2 int x=0; 3 int y=0; 4 while(n-->0) 5 { 6 与 类一段 if(t==0) 7 用为 A x=y+20; 8 else 工 9 if(t=1) 10 立目 、A x=y+100; 11 干()面 else 12 富 干基.A x=y+200 13} 中 盒黑 14} F A 要求(1)给出该段代码的控制流图; T. (2)主动向控制流图的环复杂度V (G); (3)写出独立路径。
(1) 该段代码的控制流图如下:
```
+---(n > 0)---+
| |
| v
| +---(t == 0)---+
| | |
| | v
+----+----+ | +---(t == 1)---+
| | | | |
| int x | | | v
| | | | +---(t != 0 && t != 1)---+
+----+----+ | | | |
| | | | v
| | | +----+----+ |
| | | | | |
| | | | int x | |
| | | | | |
| | | +----+----+ |
| | | | |
| | | +--------------------------+
| | |
| | v
| | +----+----+
| | | |
| | | int y |
| | | |
| | +----+----+
| | |
| +----------+
|
v
+----+----+
| |
| int y |
| |
+----+----+
|
+-------------------+
```
(2) 主动向控制流图的环复杂度V(G):
V(G) = E - N + 2 = 9 - 7 + 2 = 4
其中,E 表示控制流图中的边数,N 表示控制流图中的节点数。
(3) 独立路径:
① 2-4-14
② 2-4-6-14
③ 2-4-6-7-14
④ 2-4-6-9-10-14
⑤ 2-4-6-9-11-14
⑥ 2-4-6-12-14
其中,路径的数字表示节点在控制流图中的编号。
阅读全文