ilyjyz 发表于 2014-3-24 14:58:27

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

如题,请赐教。谢谢!

549597890 发表于 2014-3-24 15:19:01

正常情况普通的basic跟lua的变量在本文档内有效. lib里面的程序全局有效。ndless会者来讲。你在问哪一种?

ilyjyz 发表于 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

ilyjyz 发表于 2014-3-24 15:29:18

549597890 发表于 2014-3-24 15:19 static/image/common/back.gif
正常情况普通的basic跟lua的变量在本文档内有效. lib里面的程序全局有效。ndless会者来讲。你在问哪一种?

我想算出移动的步数

549597890 发表于 2014-3-24 15:46:45

ilyjyz 发表于 2014-3-24 15:29 static/image/common/back.gif
我想算出移动的步数

介绍一下程序目的?

549597890 发表于 2014-3-24 16:03:29

本帖最后由 549597890 于 2014-3-24 16:04 编辑

549597890 发表于 2014-3-24 15:46 http://www.cncalc.org/static/image/common/back.gif
介绍一下程序目的?
hold on...

ilyjyz 发表于 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?

ilyjyz 发表于 2014-3-24 16:27:35

549597890 发表于 2014-3-24 16:03 static/image/common/back.gif
hold on...

换用上面一个更简单的例子,为何move函数无法修改变量s?请指教

549597890 发表于 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

549597890 发表于 2014-3-24 17:02:18

保留一个习惯编好后测试前按住ctrl+B快速保存程序代码并进行初步测试

ilyjyz 发表于 2014-3-24 19:26:12

受教了,谢谢!
页: [1]
查看完整版本: 请教如何定义和使用全局变量?