我是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”错误。
有人知道怎么了吗?
答案 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