提问人:Liebenfiels 提问时间:9/25/2023 最后编辑:Jesse SealandLiebenfiels 更新时间:10/3/2023 访问量:63
机车基础(1986)中随机序列的长度
Length of random sequence in Locomotive Basic (1986)
问:
我正在学习 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
#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=0
numcount=0
它有效;只需要一个我在代码中具有更简单场景的测试。
评论