Как остановить кнопку включения от взлома программы в 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 можно найти здесь.