Как отобразить значение на домашний экран во время титановой программы Ti-89
Что касается этой темы, то это то, что я пытаюсь сделать, но у меня было немного больше свободы в этом.
Моя проблема в том, что я сейчас работаю над определяющей программой (для моего титана ti-89), чтобы выписать определения переменных. Однако, учитывая, что мне нужно добавить неопределенное количество переменных, я подумал, что использование функции define снова и снова приведет к потере памяти и вычислительной мощности. Поэтому я подумал: " Сохранить переменную в другой переменной, которая будет определена в более поздней части программы".
prompt x
lbl x_d_r
x_d_r->q:Goto def
lbl def
define expr(q)[1]=x
где x_d_r не имеет назначенного значения. Таким образом, программа должна была использовать определенную строку в качестве значения списка, чтобы быть х. Однако произошла очевидная ошибка.
Поэтому я немного поигрался на домашнем экране и экране программы и наткнулся на entry(1) и ans(1). Посмотрите назад на Ти-83 (или 84), я мог бы пойти (если я правильно помню)
disp q*1
x->ans(1)
Однако ANS (1) на титане Ti-89 основан на последнем ответе, представленном на домашний экран. Даже в этом случае ans (1) или entry(1) заменяются программой. К счастью, я нашел способ избежать этого.
Prgm
expr(char(120)&char(22)&char(97)&char(110)&char(115)&char(40)&char(49)&char(41))
EndPrgm
Для тех, кто не знает, это просто выражение x->ans(1), которое является способом для кода передать ans (1) внутри программы, не удаляя код, чтобы сказать это.
Но он по-прежнему не работает, так как значение должно быть отправлено на домашний экран для правильной записи. Это одно из тех преимуществ, которые Ti-84 или Ti-83 я хотел бы иметь на титане. Поэтому я потратил некоторое время на поиски способов отображения значений q на главном экране из программы. До сих пор я узнал, что функции при прямом использовании с домашнего экрана возвращают значение q в то же место. Однако у меня нет возможности реализовать это в реальной программе, так как функция не хочет передавать значение на домашний экран, и оно довольно бесполезно в программе.
Во-вторых, я нашел этот веб-сайт, на котором подробно описаны способы возврата значений на домашний экран. В то время как метод 1, кажется, обещает, у меня, кажется, нет никакого способа получить доступ к этой папке / программе. Скорее всего, потому что это тот, который он сделал и не поделился своим местоположением в PDF. Мне нравится expr("q"&":stop"), но q не оценивается, поэтому, возможно, мне придется как-то переделать его.
В то время как это происходило, я думал, что некоторые другие идеи могли бы использовать ключ вставки в программе, но я не представляю, как реализовать материал, найденный в getkey, не говоря уже о том, как учитываются кнопки "второй" и "захват".
Или я мог бы как-то сделать, чтобы ans (1) посмотрел куда-то еще, кроме домашнего экрана. Желательно для экрана i/0, но может быть для какого-то другого списка или матрицы данных.
У кого-нибудь есть идеи о том, как передать значение на домашний экран, будь то через функцию, вставку или что-то еще, и программа, которую я определил ранее, определяет это как значение?
ОБНОВЛЕНИЕ +1 Хорошо, я начинаю сомневаться, возможно, я делаю это более сложным, чем это должно быть...
В конце концов, я иду только для x->x_d_r[1]
, который уже определен в другом месте. Так бьет x->q:Goto def
Lbl def
Define expr(q)=x
(Или что-то подобное тому, что вызывает программу записи истории для определения значений?) С точки зрения скорости обработки и количества памяти?
1 ответ
Понял. Смотрите здесь, что я действительно пытался сделать.
Итак, в качестве объяснения того, что снова было главной проблемой, я хотел иметь возможность разместить строковое значение q, которое будет определено другим значением x.
expr(
Функция является довольно мощным инструментом на Ти-89 и, как и человек на этом другом форуме, недооценила его. Посмотрите, что человек пытался сделать
InputStr "Function:",f(x)
expr(f)→f(x)
И позже ответил, переработав его как
InputStr "function", n
expr(n & "->f(x)")
Инструмент выражения просто выражает то, что находится в скобках. Итак, во время перерывов в школе сегодня я передумал: "Что если бы я попытался переписать скобки, чтобы они читали Expr("x->"&String(q))
?
Глядишь, это работает. Протестировал его с более полной версией определения, чтобы получить
td()
Prgm
Prompt X
x_d_r->q
expr("x->"&string(q)&"[1]")
Disp x_d_r[1]
Delvar x_d_r
EndPrgm
Испытано, проверено и верно. Работает до конца. Я понимаю, что происходит то, что все, что не находится в кавычках, оценивается немедленно в выражении, тогда как объекты в кавычках просто выражаются и добавляются позже в ответ на клавишу "&". Кроме того, имеет смысл, если бы я описал это более по-английски; Msgstr "Выразить x, чтобы сохранить в строке соответствующей таблицы q".
В то время как для переменных мне пришлось бы искать способы сделать x_d_r локальным только для программы, не компенсируя тот факт, что часть x_d_r не считается значением хранилища при выполнении x_d_r->q
, Но зная, что я знаю сейчас, я мог бы сделать
expr("q"+"x_d_r"&->a)
expr("x->"&string(a)-"q"&"[1]")
Чтобы обойти эту проблему.