《Locomotive Basic》(1986)中随机序列的长度

问题描述 投票:0回答:2

我正在学习 BASIC,现在在 GEM Locomotive BASIC (1986) 工作,时间为

'86 Amstrad PC1512DD (8MHz, 512 ram, 5.25" 360 kb floppies)
我使用循环打印数字的程序随机生成一定范围内的数字

PRINT;n

首先,它打印一个数字,然后添加一个随机生成的值。这一直持续到达到最大值,然后程序停止。

我想做的是在程序最后停止时计算输出的数量,而不是添加数字。

例如,如果行有数字

20   100    1500    125

这应该算作 4,因为每个都是单独的值,而不是将它们加起来为 1745。这只是一个示例,我可能有数千个输出。

也许可以将数字转换为字符串,然后以某种方式对字符串进行计数?如有任何帮助,我们将不胜感激。

counting basic
2个回答
0
投票

验证这一点并不容易,但在追踪 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

0
投票

非常感谢您,没有您的帮助我无法弄清楚。 我修改了它并放在循环下:

# 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

它有效;只需要使用我在代码中拥有的更简单的场景进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.