cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 2953|回复: 10

[Nspire] 请教如何定义和使用全局变量?

[复制链接]
发表于 2014-3-24 14:58:27 | 显示全部楼层 |阅读模式
如题,请赐教。谢谢!

评分

参与人数 1金钱 +3 收起 理由
549597890 + 3 z欢迎新人!我先想想

查看全部评分

发表于 2014-3-24 15:19:01 | 显示全部楼层
正常情况普通的basic跟lua的变量在本文档内有效. lib里面的程序全局有效。ndless会者来讲。你在问哪一种?
 楼主| 发表于 2014-3-24 15:26:42 | 显示全部楼层
本帖最后由 ilyjyz 于 2014-3-24 15:28 编辑

本人刚接触TI程序设计,不甚清楚lib和ndless,所指何物?
以以下程序为例,请请指教如何正确打印调用move函数的次数:
Define recursion()=
Prgm
Request "有多少个盘子?",i

Disp "一共需要移动"&string(s)&"次"
EndPrgm


Define hanoi(n,a,b,c)=
Func
If n=1 Then
move(a,c)
Else
hanoi(n-1,a,c,b)
move(a,c)
hanoi(n-1,b,a,c)
EndIf
:EndFunc



Define move(x,y)=
Func
Disp x&"移至"&y
Return 0
EndFunc
 楼主| 发表于 2014-3-24 15:29:18 | 显示全部楼层
549597890 发表于 2014-3-24 15:19
正常情况普通的basic跟lua的变量在本文档内有效. lib里面的程序全局有效。ndless会者来讲。你在问哪一种?

我想算出移动的步数
发表于 2014-3-24 15:46:45 | 显示全部楼层
ilyjyz 发表于 2014-3-24 15:29
我想算出移动的步数

介绍一下程序目的?
发表于 2014-3-24 16:03:29 | 显示全部楼层
本帖最后由 549597890 于 2014-3-24 16:04 编辑
549597890 发表于 2014-3-24 15:46
介绍一下程序目的?

hold on...
 楼主| 发表于 2014-3-24 16:26:52 | 显示全部楼层
换一个简单的例子:
Define move()=
Func
s=s+1
Return 0
EndFunc


Define main()=
Prgm
s:=0
move()
Disp s
EndPrgm

为何main程序输出的s还是为0?
 楼主| 发表于 2014-3-24 16:27:35 | 显示全部楼层
549597890 发表于 2014-3-24 16:03
hold on...

换用上面一个更简单的例子,为何move函数无法修改变量s?请指教
发表于 2014-3-24 17:01:15 | 显示全部楼层
印象里func是计算器输入行直接输入然后返回一个值显示在结果位,prgm是正式编译ti-basic、

初步测试发现func用的是本程序内局部变量,prgm是文档内通用变量,可以暂时当全局用

Define move()=
Prgm
1→s
EndPrgm

Define main()=
Prgm
s:=0
move()
Disp s
EndPrgm


输出s为1
发表于 2014-3-24 17:02:18 | 显示全部楼层
保留一个习惯  编好后测试前按住ctrl+B  快速保存程序代码并进行初步测试
 楼主| 发表于 2014-3-24 19:26:12 | 显示全部楼层
受教了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-5-14 16:04 , Processed in 0.068981 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表