Nspire程序设计基础教程
本帖最后由 Elatha 于 2010-11-26 12:55 编辑Nspire程序设计基础教程
写在前面的话:nspire中所有的函数都是可以单独在计算器页面使用的,所以本教程所有的语句都可以在计算器页面运行,初学者一定要多试,才能熟练掌握。
一、编程基础知识
变量:即可变的量。比如变量a可以等于1也可以等于2,变量用于存储数据。与其他程序语言不同,nspire的变量不需声明,可直接赋值使用。
赋值:赋值即对变量赋予一个值。赋值有三种方式,通过赋值号:=、→、和define。→可以通过先按一下ctrl再按一下var键呼出。实例:a:=1、1→a、define a =1都是把1赋值给变量a。变量可以由自身赋值,比如当a=2时,a:=a+1会使a的值变为3。
数据类型:nspire的程序系统没有太复杂的数据类型,只有字符串和数值之分。字符串为双引号之中的字符,如"abc"是一个字符串。字符串不能用于运算,不过鉴于nspire牛逼的CAS系统,大家可以试试运算"1"+"1"。数值类型即为1、2、3等数值,可用于计算。
删除变量:删除变量的方法是输入delvar 变量名,如delvar a即删除a变量。
二、编程环境
在任意文档中,按ctrl,home,4(插入),9(程序编辑器)可以选择新建或打开一个程序。新建程序,在弹出的窗口名称那输入一个变量名就行。Nspire的程序是以变量的形式存在的。新建程序之后,进入程序编辑器,看到以下文字(假设我的程序名为i)
Define i()=
Prgm
Endprgm
其中,prgm和endprgm之间是输入程序代码的,i之后的括号内可以输入变量名称,这些变量可以在程序运行时读入,多个变量可以用逗号隔开,比如i(a,b)这样运行时需要2个变量,运行时变量会被录入。这些变量在程序结束时是不被保留的,在程序结束时会被删除。
程序编好后需要进行保存才能运行,快捷键是ctrl+B,此时会检查程序错误,如程序有错误会提示修改。
三、输入和输出
Nspire中输出一个变量的值常用disp和text函数。两函数的用法:
Disp a 以打印方式输出a的值。
Text a 会以对话框形式输出a的值,但a必须为字符串类型。
输入有3种方法,第一种就是在程序括号内作为自变量输入。还有就是request和requeststr函数。用法如下
Request "提示内容",a 弹出对话框,显示提示内容,把用户输入的值存入变量。
Requeststr "提示内容",a 弹出对话框,显示提示内容,把用户输入的值存入变量。(输入内容必须为字符串类型)
本节内容需自己尝试,尝试十分重要,请不要只看不试。
现在你可以写一个最简单的程序
尝试写一个程序,代码为disp "Hello World!"。然后到计算器页面运行,运行方法是 程序名(变量),比如i(),但是即使不需输入变量,括号也不能省。
四、基本控制结构
逻辑运算:逻辑运算符号有=、≠、<、>、≤、≥几个。稍微了解数学的都有了解,简单的逻辑运算相信大家都明白。比如1=1是成立的(即true),1≠1是不成立的(即false)。布尔运算符常用的有and和or。and即两个式子都成立时成立,比如1=1 and 1≠1是false的,因为1≠1是不成立的,而1=1 and 2=2是true,即成立。or即两个式子其中一个成立时成立,比如1=1 or 1≠1为true,1≠1 or 2≠2为false,不太明白的可以把前面的式子直接输入计算器计算,计算结果会告诉你是true还是false。
顺序结构:即顺序执行程序,也就是从第一行执行到最后一行,是最基本的程序结构。
条件结构:即进行逻辑判断,再执行相应的程序。例子如下:
If a=1 then
程序代码1
Else
程序代码2
Endif
程序代码1只有当a=1(即逻辑表达式成立)时才会运行。逻辑表达式可以是布尔表达式,如if a=1 or b=1 then。Else之后的程序代码2是当逻辑表达式不成立时运行的,else代码不是必须的,条件结构最简形式为if...then...endif。这些语句在程序编辑器界面,按menu的控制菜单里可以找到。
循环结构:常用的有for循环,while循环。For循环是限定次数的循环,格式如下:
For 变量名,起始值,结束值(,步长)
程序代码
Endfor
变量名可以写任何一个变量,它的值将会由起始值变为结束值,每次变化的大小为步长,步长可省略,默认为1。变量每变化一次便执行一次程序代码。如:
For i,1,5
Disp i
Endfor
这个循环中i从1变到5一共变化5次,每次执行一次disp i的代码。运行结果是打印出1、2、3、4、5。提示:for循环中步长可以为负数。
While循环是限定条件的循环,格式为:
While 逻辑表达式
程序代码
Endwhile
当逻辑表达式成立时将运行程序代码。如
While a<5
a:=a+1
Disp a
Endwhile
设a初始值为0,每次循环都判断一次a<5是否成立,如成立则运行程序代码。最终经过5次循环,a的值会变为5,此时循环停止。本程序运行结果是打印出1、2、3、4、5。
另外两种控制结构有空再补充。
Loop循环是一种死循环,必须有跳出语句,否则无法结束循环,有兴趣的可以自己动手试试。
Goto和Lbl是跳转语句,在每一个程序的任意位置,你可以插入一个Lbl中文即标签,再通过Goto跳转到标签处。比如:
……
Lbl a
程序代码
Goto a
……
每插入一个标签需要带上一个变量名,goto语句时写上变量名即可跳转到同变量名的标签。此程序中,运行到Goto a时程序会跳转到Lbl a处重新运行程序代码。但是,这是一个死循环,程序会不断地运行程序代码,永远也不会停止。
Exit语句是跳出循环用,循环内使用可以跳出循环,运行循环之后的代码,Stop语句是停止程序,可以使程序停止运行,这2个函数的效果大家可以自己去尝试一下。
五、基本数据结构
Nspire中的数据可以存储于列表和矩阵中。列表等于一个一维数组,矩阵则是一个二维数组。
列表的赋值语句是:列表变量:={数值,数值,数值,……},如a:={4,5,6}就在a这个列表中1、2、3序号位,分别赋值了4、5、6。列表可以在“列表与电子表格”页面中调用。在“列表与电子表格”页面,每列的最上方一个单元格中输入列表变量,表里就会出现数据。列表数据的引用需用以下格式:列表变量[序号],比如刚才的a列表,输入a等于会出现4,即调用了a列表第1序号位的数据。矩阵的赋值可以使用数学模式的矩阵符号,也可以用以下格式:矩阵变量:=[[第一行][第二行]……],比如:a:=[]就输入了一个2*3的矩阵,第一行数据为1、2、3,第二行数据为4、5、6。引用方法是:矩阵变量[行,列],如刚才的矩阵,输入a会输出6,a会输出3。 其实我不知道写这些东西到底有没有意义
有多少人会看
又能帮助到多少人 不过我可以保证此贴不会太监
我会坚持到写完整个编程的教程 肯定是有意义的,不仅于Nspire用户有意义,对89用户和其他68K用户也是相当有意义的。 终于待续了么。。还能继续么 本帖最后由 Elatha 于 2010-11-28 01:05 编辑
回LS
还能继续
教程的设计需要大家的参与,不是我一个人就能搞好的。
我也不是万能的,我也有东西不懂。
比如控制结构的try我就不会用
我只能写出我会的东西
有错漏敬请指出 肯定是有意义的,不仅于Nspire用户有意义,对89用户和其他68K用户也是相当有意义的。
chsi 发表于 2010-11-26 09:53 http://www.cncalc.org/images/common/back.gif
像a:=3这么简单的就省略了伐 果然是自己加入精华..还是精3.. 1# Elatha 好! 非常得有意义 尤其对刚刚拿到NS的同学们
其实多看看老外编的程序也能学习不少 还好NS的程序没法闭源 老兄坚决支持你,赶快出第二集吧,我刚买NS,可是编程篇是英文---白瞎。
你先传的程序也行,我会FX-5800的编程,再次谢谢了。QQ:[email protected] ns的变量名能不能用词组? 变量可以大写和小写字母都能用吗?
如:Length=a+b
Width=cd
Area=Length*Width 回ls
可以 恩,Ns中变量不分大小写 请问有测绘程序吗? 呵呵 学习 看看 Nspire程序设计基础教程
写在前面的话:nspire中所有的函数都是可以单独在计算器页面使用的,所以本教程所有的语句都可以在计算器页面运行,初学者一定要多试,才能熟练掌握。
一、编程基础知识
变量:即可 ...
Elatha 发表于 2010-11-26 01:08 http://www.cncalc.org/images/common/back.gif
楼主加油。。。你的帖子很有意义。。
有充裕的时间我要买个CAS的来玩玩。。。中文的很喜欢 真是好东西呀! 强烈反对置顶 强烈反对置顶
imath 发表于 2011-2-20 17:32 http://www.cncalc.org/images/common/back.gif我通知过楼主了。本来精3已经改精1了,再不更新就取消置顶。
页:
[1]
2