Как остановить кнопку включения от взлома программы в TI-BASIC

Поэтому я создал программу TI-BASIC, которая подделывает домашний экран калькулятора, но нарочно дает неправильный ответ на математические уравнения. Это код:

:ClrHome
:Lbl 1
:Input "",A
:Disp rand
:Goto 1

Он прекрасно работает и все такое, и с ним забавно обманывать друзей, но я бы хотел сделать его более сложным. Например:
1) Как обойти автоматическое прерывание программы при нажатии "ВКЛ", и
2) Существуют ли другие способы лучше подделать домашний экран (например, когда кто-то нажимает на операцию без номера перед ней, она автоматически подделывает переменную 'ANS'), и как я могу записать ее в программу.

Заранее спасибо.

3 ответа

Решение

Хорошо, чтобы избежать синтаксической ошибки

например, когда кто-то нажимает на операцию без номера перед ней

Вы можете сохранить вход как STR1 вместо A

Способ 1:

(может или не может ответить на ваш вопрос)

На следующем веб-сайте показано, как можно использовать SortA, чтобы кнопка ON работала:

http://tibasicdev.wikidot.com/bunny-virus

Использование SortA в списке элементов 999 некоторое время будет держать калькулятор занятым, а кнопка "вкл" не будет работать. Кодирование на веб-сайте может использоваться для шуток, но не используйте его для чего-либо разрушительного, например, для удаления кода пользователя.

Способ 2:

(вероятно, отвечая на ваш вопрос)

Если вы хотите отключить кнопку ON, когда калькулятор на самом деле что-то делает, попробуйте установить на свой калькулятор следующую программу и обязательно прочитайте файл README:

http://www.ticalc.org/archives/files/fileinfo/330/33039.html

Нет возможности отключить функцию on-break. Это сделано для того, чтобы любители не могли отправить калькулятор в бесконечный цикл.

Что касается Ans, то, что я сделал (хотя и не очень реалистично), сохранил вход в str1 а затем использовать

sub(str1,1,1) -> str1
if str2 = "+" or str2 = "/" or str2 = "*" or str2 = "-"
then
expr(str1)
Else
Disp "Cannot begin function with an operation"
end

expr() может быть найден в той же области, что и строки.
После выполнения этой операции она теперь обрабатывается как число, а не как строка, поэтому вы больше не можете использовать строковые команды.

Я не использовал TIBASIC в течение длительного времени, так что если есть синтаксическая ошибка в expr(str1) или он не отображается, просто сохраните его в переменной и затем используйте Disp <variable> отобразить ответ.

Также я обнаружил, что почти все функции TIBASIC можно найти здесь.

Другие вопросы по тегам