我正在学习 BASIC,现在在 GEM Locomotive BASIC (1986) 工作,时间为
'86 Amstrad PC1512DD (8MHz, 512 ram, 5.25" 360 kb floppies)
我使用循环打印数字的程序随机生成一定范围内的数字
PRINT;n
首先,它打印一个数字,然后添加一个随机生成的值。这一直持续到达到最大值,然后程序停止。
我想做的是在程序最后停止时计算输出的数量,而不是添加数字。
例如,如果行有数字
20 100 1500 125
这应该算作 4,因为每个都是单独的值,而不是将它们加起来为 1745。这只是一个示例,我可能有数千个输出。
也许可以将数字转换为字符串,然后以某种方式对字符串进行计数?如有任何帮助,我们将不胜感激。
验证这一点并不容易,但在追踪 Amstrad 486 CPC 模拟器后,我能够验证它是否有效。
# variable description
# NUM The value of the current number being incremented
# NUMCOUNT The total number of time the value has been incremented
# MAXNUM The maximum value of the sequence
# MAXGAP The largest possible value to randomly add to the NUM
100 NUM = 1
150 NUMCOUNT = 0
200 INPUT"
Max Number";MAXNUM
300 INPUT"
Max Gap";MAXGAP
400 NUMCOUNT=NUMCOUNT+1
500 NUM=NUM+INT(RND*MAXGAP)
600 IF NUM > MAXNUM THEN 800
700 GOTO 400
800 PRINT "TOTAL NUMBERS",NUMCOUNT
非常感谢您,没有您的帮助我无法弄清楚。 我修改了它并放在循环下:
# n- is my printed number
# t- is as similar to total
IF n THEN t= t+1
total= t
NEXT n
# REM The below PRINT is after the Next n loop completes to the end
PRINT "Total number",total
与你的类似,但在我的中,我没有保持在前面
t=0
就像你有 numcount=0
。
它有效;只需要使用我在代码中拥有的更简单的场景进行测试。