cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 3772|回复: 5

[Nspire] 編了一個化簡數組的程序,但有小問題求問

[复制链接]
发表于 2017-9-10 00:28:53 | 显示全部楼层 |阅读模式
本帖最后由 yangguohong2002 于 2017-9-10 00:35 编辑

就是合併一樣的元素,之後便由小到大排序.看圖片,編程如下
Define pl()=
Prgm
:Local q1,k,a,b,x
:Request "原數組是",q1
:SortA q1
:dim(q1)→a
:ΔList(q1)→list1
:countIf(list1,0)→b
:augment(list1,{1})→list2
:ifFn(list2≠0,q1)→list3
:SortA list3
:left(list3,a-b)→list4
:Disp "簡化數組是",list4
:EndPrgm

問題:為什麼按取消有錯誤,怎樣處理?,輸入框可以不使用大括號嗎?
QQ图片20170910001304.png
QQ图片20170910001821.png
QQ图片20170910001841.png
QQ图片20170910002455.jpg
QQ图片20170910002502.jpg

化簡數組.tns

2.31 KB, 下载次数: 7

pl

发表于 2017-9-10 09:47:12 | 显示全部楼层
按取消后你的q1变量就相当于没有定义,后面的SortA q1等等就会报错。
你可以用Try语句,被Try包起来的部分若是出现错误,就会执行Else里的部分。
你的可以这样改:
Define pl()=
Prgm
:Local q1,k,a,b,x
:Try
:Request "原數組是",q1
:SortA q1
:dim(q1)→a
:ΔList(q1)→list1
:countIf(list1,0)→b
:augment(list1,{1})→list2
:ifFn(list2≠0,q1)→list3
:SortA list3
:left(list3,a-b)→list4
:Disp "簡化數組是",list4
:Else
:Stop
:EndTry
:EndPrgm
这样按了取消就会中止程序啦~
 楼主| 发表于 2017-9-10 12:39:59 | 显示全部楼层
謝謝,還有怎樣令到輸入框可以不用輸入大括號嗎?
发表于 2017-9-13 23:11:56 | 显示全部楼层
本帖最后由 hyfok 于 2017-9-13 23:15 编辑
yangguohong2002 发表于 2017-9-10 12:39
謝謝,還有怎樣令到輸入框可以不用輸入大括號嗎?

这个我想可能做不到,Request输入框中输入的是一个变量。
硬是不想用括号,可以试试用循环一个一个输入进去,或者设置一个 形式参数。
发表于 2017-9-17 10:13:50 | 显示全部楼层
yangguohong2002 发表于 2017-9-10 12:39
謝謝,還有怎樣令到輸入框可以不用輸入大括號嗎?

可以用requeststr,程序里自己加一个大括号
 楼主| 发表于 2017-9-20 02:15:32 | 显示全部楼层
好的,我試試看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-23 22:28 , Processed in 0.084617 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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