阅读以下说明,回答问题,将解答填入对应的解答栏内。 [说明] 计算下列源代码的McCabe环数,画出控制流程图并用罗马数字标出区域。 read x,y,z; type =“scalene”; if (x= =y or x = = z o

admin2009-02-15  28

问题 阅读以下说明,回答问题,将解答填入对应的解答栏内。
[说明] 计算下列源代码的McCabe环数,画出控制流程图并用罗马数字标出区域。
   read x,y,z;
   type =“scalene”;
   if (x= =y or x = = z or y= = z)type =“isosceles ”;
   if (x = = y and x = = z) type =“equilateral”;
   if (x>= y+ z Or y>= x+20rz>=x+ y)  type= “not a triangle”;
   if (x<=0 or y<= 0 or z <=0) type =“bad inputs”;
   print type;

选项

答案

解析 McCabe 的环数是软件开发中继代码行之后最常使用的度量。它基于图论的环数。 McCabe 试图度量程序的复杂性。前提是该复杂性与程序的控制流相关。图论使用公式C= e-n+1 来计算环数。McCabe 稍加修改后的公式为:C=e-n+2p
其中:
   e=边的数目
   n=结点的数目
   p=强连通组建的数目(通常为1)
控制流程图如下:

区域的数目为5,所以环数也为5。也可以用判断来数出环数。离开结点a、c、e、g的路径各有一个判断,因此,共有4个判断。环数为判断数加1,所以环数为5。也可以利用公式e-n+2来计算环数。这里,e=12,n=9,e-n+2=5
转载请注明原文地址:https://jikaoti.com/ti/Uci7FFFM
0

最新回复(0)