cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 5496|回复: 8

[Nspire] 求助:一段程序的编制遇到困难,请大佬们帮忙

[复制链接]
发表于 2020-10-3 16:25:43 | 显示全部楼层 |阅读模式
第一步,先建立一个列表,并且定义并赋值了列表变量y,z,m

第二步,编制程序如下:


Define unit()=
Prgm
:Local y1
:Local z1
:Local m1
:Local x1
:Local i
:y1:=y
:z1:=z
:m1:=m
:i:=1
:Lbl a1
:x1:=(((m1+1)^(−i)*(m1*y1-((m1+1)^(i)-1)*z1))/(m1*z1))
:i:=i+1
:If x1<0 or x1>1
:  Goto a1
:  x:=x1
:EndPrgm

算出来的X1值或者x值根本没有产生循环。

请问各位大侠,大佬们

为什么循环中止在i=1了?

非常感谢!

03-10-2020 Image001.jpg
03-10-2020 Image002.jpg
 楼主| 发表于 2020-10-3 16:28:33 | 显示全部楼层
x或者x1,应该算出来是0<x<1的。

大家看看表2,明显大于1了,说明循环在i=1的时候,就终止了。

怎么都找不到原因,寻求各位大佬们的帮助!
 楼主| 发表于 2020-10-4 11:38:59 | 显示全部楼层
真是急死我了,好几天都找不出原因,不知道怎么办。
发表于 2020-10-5 16:52:42 | 显示全部楼层
我觉得错误处在if那里
发表于 2020-10-5 16:53:32 | 显示全部楼层
单独写下 if X>1  goto 试试
发表于 2020-10-5 16:55:18 | 显示全部楼层
为什么不用while语句

While循环是限定条件的循环,格式为:

While 逻辑表达式

程序代码

Endwhile

当逻辑表达式成立时将运行程序代码。如

While a<5

a:=a+1

Disp a

Endwhile
 楼主| 发表于 2020-10-6 07:21:32 | 显示全部楼层
mrlgs 发表于 2020-10-5 16:53
单独写下 if X>1  goto 试试

谢谢朋友的耐心回复,我用while语句重写了一次,并且把条件改成了x>0,还是不行。
我又寻找了原因,很有可能是因为数组变量x被反复多次赋值,在TI-basic里面是不被允许的。
发表于 2020-10-8 14:47:03 | 显示全部楼层
不要用goto
发表于 2021-1-26 16:21:29 | 显示全部楼层
没看懂,if后面没有Then,也没有Endif结束语句。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-21 18:42 , Processed in 0.072836 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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