回 帖 发 新 帖 刷新版面

主题:求高手转换老BASIC程序

现有程序如下:请高手转成不用GOTO的。
10 b = b + 1: IF b > 3 GOTO 70
IF a(z) + b > 7 GOTO 10
z = z + 1: a(z) = a(z - 1) + b
IF a(z) < 7 THEN b = 0: GOTO 10
FOR i = 1 TO z: PRINT a(i) - a(i - 1); : NEXT
s = s + 1: PRINT "_____"; s
70 z = z - 1: IF z < 0 THEN PRINT s: END
b = a(z + 1) - a(z): GOTO 10

回复列表 (共4个回复)

沙发

看了一下,这段程序的流程非常乱。条件也不完整,不知道到底要计算什么。程序还可能是死循环。
如果不用GOTO,也不用EXIT,编程很难。
建议重写。

板凳

不知道你这程序要干什么。给你改了改。
z = 0
k = 0
l = 0
DO
 DO
  IF l = 0 THEN b = 0
  DO
   IF k = 1 THEN b = a(z + 1) - a(z)
   b = b + 1
   k = 1
  LOOP UNTIL b <= 3 OR a(z) + b <= 7
  IF b > 3 THEN
   z = z + 1
   a(z) = a(z - 1) + b
   l = 0
  ENDIF
 LOOP UNTIL a(z) >= 7 OR b <= 3
 IF b > 3 THEN
  FOR i = 1 TO z
   PRINT a(i) - a(i - 1); 
  NEXT
  s = s + 1
  PRINT "_____"; s
 ENDIF
 z = z - 1
 l = 1
LOOP UNTIL z < 0
PRINT s
END

3 楼


最讨厌的就是BASIC语言里的“:”,把程序搞成一堆,乱七八糟的。

4 楼


没法发附件,不能给你流程图了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册