Как использовать клавиши со стрелками в пользовательской программе TI - PullRequest
3 голосов
/ 03 августа 2011

Я просмотрел столько функций, сколько смогу, и до сих пор не могу найти ту, которая позволяет вам перехватывать нажатие клавиши со стрелкой TI.

Ответы [ 3 ]

5 голосов
/ 08 августа 2011

Для базовых программ, которые запускаются с помощью кнопки «Prog», вам нужно вызвать getKey, которая возвращает код клавиши для последней нажатой кнопки. Кнопки со стрелками отображаются на коды 24, 25, 26 и 34.

Дополнительную информацию можно получить по адресу TI-Basic Developer под заголовком «Чтение нажатий клавиш».

3 голосов
/ 13 сентября 2013

Я знаю, что это старый вопрос, но я думаю, что этот пункт все еще может быть актуальным.

Если вы используете клавишный ввод для перемещения символа или изменения значения, вы почти всегда лучшевыкл. избегая if-then-else операторов.

Самый быстрый способ, как правило, заключается в том, чтобы сделать что-то вроде этого:

:getkey -> A
:X+(A=24) -> X
:X-(A=26) -> X
:Y+(A=25) -> Y
:Y-(A=34) -> Y

, который может быть далее сжат до:

:getkey -> A
:X+(A=24)-(A=26) -> X
:Y+(A=25)-(A=34) -> Y

при работе с логикой с помощью операторов if мы используем тот факт, что (A=24) имеет логическое (0 или 1) значение.Таким образом, мы добавляем или вычитаем 1, если это определенное значение.

Установка пределов также довольно проста:

:getkey -> A
:X+(A=26)(X<=20)-(A=24)(X>0) -> X
:Y+(A=25)(Y<=15)-(A=34)(Y>=3) -> Y

Так что, если (X<20), он умножится на 1, но когда X>= 20, (X<20) умножится на 0, отрицая инкримент.

Я использую другую технику, чтобы помочь с выбором значений в некоторых из моих программ: левая и правая клавиши увеличивают и уменьшают переменную на другое значениечем клавиши вверх и вниз.Однако для этого требуется дополнительная логика.

:getkey -> A
:X+10(A=26)(X+10<=100)-10(A=24)(X-10>=0) -> X
:Y+(A=25)(Y<15)-(A=34)(Y>3) -> B

В этом случае стрелки влево и вправо идут на десятки, а стрелки вверх и вниз - на единицы.(X+10<=100) используется вместо (X<100), потому что последнее будет истинно, если X=99, так что X может возрасти до 109. Первое гарантирует, что добавление десяти не превысит ограничение.

2 голосов
/ 22 августа 2012

Вы должны быть в состоянии сделать это с помощью команды getkey.

getkey (Store as) (Variable) A
while A=0
getkey (Store as) A

Затем вы можете вызывать переменную A во всей программе.У каждого ключа есть номер, который вызывается через команду getkey.Таким образом, вы можете использовать эту переменную,

If A = 25
...
If A != 25
...

(25 будет стрелкой вверх)

...