TI-Nspire CX CAS 编写简易定义域值域函数运行异常求助
问题原因
- 你定义的
exprf1未将输入表达式expr1和函数形参做绑定:通过Request获取的expr1是独立表达式,内部自变量与你输入时使用的变量名绑定,和exprf1的形参xvar没有关联,调用exprf1(2)时不会执行代入操作,只会原样返回expr1内容。 - TI-Nspire的Func块语法中,直接Return外部输入的表达式字面量时,不会自动完成形参到表达式的变量替换,需要手动执行替换操作。
修正代码
Define LibPub transsolabcd()= Prgm :Request "Enter original expression: ",expr1,0 :Request "Enter mapped expression: ",expr2,0 :Request "Enter respect var: ",xvar,0 :Local a,b,c,d,exprf1,exprf2 :Define exprf1(t)=Func : Return expr(subst(expr1, xvar, t)) :EndFunc :Define exprf2(t)=Func : Return expr(subst(expr2, xvar, t)) :EndFunc :Disp exprf1(2) :EndPrgm
改动说明
- 将
exprf1、exprf2的形参改为通用名t,避免和你输入的自变量名xvar产生命名冲突 - 用
subst(expr1, xvar, t)将表达式内所有的目标自变量替换为传入的参数值 - 用
expr()函数将替换后的表达式转为可求值对象,返回计算后的结果 - 将
exprf1、exprf2加入局部变量列表,避免污染全局变量空间
内容的提问来源于stack exchange,提问作者Dstarred
相关产品推荐
相关产品推荐

