机车基础(1986)中随机序列的长度

Length of random sequence in Locomotive Basic (1986)

提问人:Liebenfiels 提问时间:9/25/2023 最后编辑:Jesse SealandLiebenfiels 更新时间:10/3/2023 访问量:63

问:

我正在学习 BASIC 并在 GEM Locomotive BASIC (1986) 中工作,我正在使用一个程序随机生成一个范围内的数字,该程序将循环中的数字打印为'86 Amstrad PC1512DD (8MHz, 512 ram, 5.25" 360 kb floppies)

PRINT;n

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

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

例如,如果行包含数字

20   100    1500    125

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

也许要把数字转换为字符串,然后以某种方式计算字符串?任何帮助将不胜感激。

计数 基础

评论

0赞 Jesse Sealand 9/25/2023
我找不到解释器来测试任何代码。如果你需要,我确实找到了 Locomotive Basic 的编程手册。它在互联网档案馆

答:

0赞 Jesse Sealand 9/25/2023 #1

验证这一点并不容易,但在追踪到 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赞 Liebenfiels 9/25/2023
非常感谢,我会在晚上检查,需要看看是否将作品添加到我的代码中,因为我已经指定了输入,并且好像在打印数字时要计数,或者在打印完它们后进行计数。如果需要在最后重新运行,可以锚定到指定的范围。只要它为上面打印/founbd 的内容提供正确的值
0赞 Liebenfiels 9/26/2023 #2

非常感谢,没有你的帮助,我不会弄清楚。 我修改了它并把它放在循环下:

# 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=0numcount=0

它有效;只需要一个我在代码中具有更简单场景的测试。