计算下列伪代码的环行复杂度,指出其逻辑错误。

wangjia163 2004-11-28 10:06:03

LOOP: DO WHILE Z>0
A = B + 1
IF A>10
THEN X = A
ELSE Y=Z
ENDIF

IF Y<5
THEN PRINT X,Y
ELSE IF Y=2
THEN GOTO LOOP
ELSE C=3
ENDIF
ENDIF

G = H + R

ENDDO

IF F > 0
THEN PRINT G
ELSE PRINT K
ENDIF

STOP
...全文
245 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjia163 2004-11-29
  • 打赏
  • 举报
回复
我已经给分了 可是没看见显示出来
wangjiatom 2004-11-29
  • 打赏
  • 举报
回复
环行复杂度 知道算了

谢谢 Panr(光荣)
houjunshen 2004-11-29
  • 打赏
  • 举报
回复
什么叫做环行度?
Panr 2004-11-29
  • 打赏
  • 举报
回复
the mistake is:
IF Y<5
ELSE IF Y=2 '<--never go this branch(beause 2 is less than 5)
ENDIF


-----
'result varibales
dim G,H,R 'the only usages in the loop is {G = H + R} at the end
dim F,K

'loop control varibales
dim A,B 'the only l-value expressions is {A = B + 1} at begin of loop
dim X,Y,Z


LOOP: DO WHILE Z>0
A = B + 1
IF A>10
THEN X = A
ELSE Y=Z
ENDIF

IF Y<5
THEN PRINT X,Y
ENDIF

G = H + R
ENDDO


IF F > 0
THEN PRINT G
ELSE PRINT K
ENDIF
STOP
wangjiatom 2004-11-28
  • 打赏
  • 举报
回复
计算它的环行复杂度,指出其逻辑错误。

错误是不是 用了GOTO?

1,268

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧