我在做错什么事来接这个错误吗?

时间:2019-10-22 21:50:30

标签: ti-basic

我是Ti-basic的新手,我正在尝试对其进行编码。我正在尝试制作这种“特殊类型的输入”程序。有点像输入,但是它会在被按下时显示该单词(不需要输入字母)

到目前为止,这里是我认为与错误有关的代码

:{41,42,43,51,52,53,54,55,61,62,63,64,65,71,72,73,74,75,81,82,83,84,85,91,92,93,94,102,103,103}→∟KEYS
:"ABCDEFGHIJKLMNOPQRSTUVWXYZθ :?"→Str7
:0→K
:""→Str1
:
:Repeat K=105
:getKey→K
:If max(∟KEYS-K)
:prgmFINDIND
:.........
:End

在prgmFINDIND内部,这是代码

:1+sum(not(cumSum(∟KEYS=K)))→I
://I is used later on in the code. It isn't pertaining to the problem.

我已经进行了一些暂停测试,发现问题出在if语句中。它会返回“ INVALID DIM”错误。

有人知道怎么了吗?

1 个答案:

答案 0 :(得分:1)

在这一部分(稍作编辑)

Repeat K=105
    getKey->K
    If max(|LKEYS=K
        prgmFINDIND
    Str1+sub(Str7,I,1->Str1
End

prgmFINDIND仅在按下的键在列表中时才被调用,否则索引I不会更改(并且可能隐式为零,或在那里剩下的任何其他值)。 / p>

实际上,在INVALID DIM上按GOTO键将转到Str1+sub(Str7,I,1->Str1,这表明使用了错误的索引来索引到Str7。

可以通过使用If/Then块来解决此问题,该块可以覆盖多个语句:

Repeat K=105
    getKey->K
    If max(|LKEYS=K
    Then
        prgmFINDIND
        Str1+sub(Str7,I,1)->Str1
    End
End