cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 25998|回复: 34

[Nspire] Nspire程序设计基础教程

[复制链接]
发表于 2010-11-26 01:08:01 | 显示全部楼层 |阅读模式
本帖最后由 Elatha 于 2010-11-26 12:55 编辑

Nspire程序设计基础教程


写在前面的话:nspire中所有的函数都是可以单独在计算器页面使用的,所以本教程所有的语句都可以在计算器页面运行,初学者一定要多试,才能熟练掌握。



一、编程基础知识

变量:即可变的量。比如变量a可以等于1也可以等于2,变量用于存储数据。与其他程序语言不同,nspire的变量不需声明,可直接赋值使用。

赋值:赋值即对变量赋予一个值。赋值有三种方式,通过赋值号:=、和define可以通过先按一下ctrl再按一下var键呼出。实例:a:=11adefine a =1都是把1赋值给变量a。变量可以由自身赋值,比如当a=2时,a:=a+1会使a的值变为3

数据类型:nspire的程序系统没有太复杂的数据类型,只有字符串和数值之分。字符串为双引号之中的字符,如"abc"是一个字符串。字符串不能用于运算,不过鉴于nspire牛逼的CAS系统,大家可以试试运算"1"+"1"。数值类型即为123等数值,可用于计算。

删除变量:删除变量的方法是输入delvar 变量名,如delvar a即删除a变量。

二、编程环境

在任意文档中,按ctrl,home,4(插入),9(程序编辑器)可以选择新建或打开一个程序。新建程序,在弹出的窗口名称那输入一个变量名就行。Nspire的程序是以变量的形式存在的。新建程序之后,进入程序编辑器,看到以下文字(假设我的程序名为i

Define i()=

Prgm


Endprgm

其中,prgmendprgm之间是输入程序代码的,i之后的括号内可以输入变量名称,这些变量可以在程序运行时读入,多个变量可以用逗号隔开,比如i(a,b)这样运行时需要2个变量,运行时变量会被录入。这些变量在程序结束时是不被保留的,在程序结束时会被删除。

程序编好后需要进行保存才能运行,快捷键是ctrl+B,此时会检查程序错误,如程序有错误会提示修改。

三、输入和输出

Nspire中输出一个变量的值常用disptext函数。两函数的用法:

Disp a 以打印方式输出a的值。

Text a 会以对话框形式输出a的值,但a必须为字符串类型。

输入有3种方法,第一种就是在程序括号内作为自变量输入。还有就是requestrequeststr函数。用法如下

Request "提示内容",a 弹出对话框,显示提示内容,把用户输入的值存入变量。

Requeststr "提示内容",a 弹出对话框,显示提示内容,把用户输入的值存入变量。(输入内容必须为字符串类型)

本节内容需自己尝试,尝试十分重要,请不要只看不试。

现在你可以写一个最简单的程序

尝试写一个程序,代码为disp "Hello World!"。然后到计算器页面运行,运行方法是 程序名(变量),比如i(),但是即使不需输入变量,括号也不能省。

四、基本控制结构

逻辑运算:逻辑运算符号有=<>几个。稍微了解数学的都有了解,简单的逻辑运算相信大家都明白。比如1=1是成立的(即true),11是不成立的(即false)。布尔运算符常用的有andorand即两个式子都成立时成立,比如1=1 and 11false的,因为11是不成立的,而1=1 and 2=2true,即成立。or即两个式子其中一个成立时成立,比如1=1 or 11true11 or 22false,不太明白的可以把前面的式子直接输入计算器计算,计算结果会告诉你是true还是false

顺序结构:即顺序执行程序,也就是从第一行执行到最后一行,是最基本的程序结构。

条件结构:即进行逻辑判断,再执行相应的程序。例子如下:

If a=1 then

程序代码1

Else

程序代码2

Endif

程序代码1只有当a=1(即逻辑表达式成立)时才会运行。逻辑表达式可以是布尔表达式,如if a=1 or b=1 thenElse之后的程序代码2是当逻辑表达式不成立时运行的,else代码不是必须的,条件结构最简形式为if...then...endif。这些语句在程序编辑器界面,按menu的控制菜单里可以找到。

循环结构:常用的有for循环,while循环。For循环是限定次数的循环,格式如下:

For 变量名,起始值,结束值(,步长)

程序代码

Endfor

变量名可以写任何一个变量,它的值将会由起始值变为结束值,每次变化的大小为步长,步长可省略,默认为1。变量每变化一次便执行一次程序代码。如:

For i,1,5

Disp i

Endfor

这个循环中i1变到5一共变化5次,每次执行一次disp i的代码。运行结果是打印出12345。提示:for循环中步长可以为负数。

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

While 逻辑表达式

程序代码

Endwhile

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

While a<5

a:=a+1

Disp a

Endwhile

a初始值为0,每次循环都判断一次a<5是否成立,如成立则运行程序代码。最终经过5次循环,a的值会变为5,此时循环停止。本程序运行结果是打印出12345

另外两种控制结构有空再补充。

Loop循环是一种死循环,必须有跳出语句,否则无法结束循环,有兴趣的可以自己动手试试。

GotoLbl是跳转语句,在每一个程序的任意位置,你可以插入一个Lbl中文即标签,再通过Goto跳转到标签处。比如:

……

Lbl a

程序代码

Goto a

……

每插入一个标签需要带上一个变量名,goto语句时写上变量名即可跳转到同变量名的标签。此程序中,运行到Goto a时程序会跳转到Lbl a处重新运行程序代码。但是,这是一个死循环,程序会不断地运行程序代码,永远也不会停止。

Exit语句是跳出循环用,循环内使用可以跳出循环,运行循环之后的代码,Stop语句是停止程序,可以使程序停止运行,这2个函数的效果大家可以自己去尝试一下。

五、基本数据结构

Nspire中的数据可以存储于列表和矩阵中。列表等于一个一维数组,矩阵则是一个二维数组。

列表的赋值语句是:列表变量:={数值,数值,数值,……},如a:={4,5,6}就在a这个列表中123序号位,分别赋值了456。列表可以在“列表与电子表格”页面中调用。在“列表与电子表格”页面,每列的最上方一个单元格中输入列表变量,表里就会出现数据。列表数据的引用需用以下格式:列表变量[序号],比如刚才的a列表,输入a[1]等于会出现4,即调用了a列表第1序号位的数据。矩阵的赋值可以使用数学模式的矩阵符号,也可以用以下格式:矩阵变量:=[[第一行][第二行]……],比如:a:=[[1,2,3][4,5,6]]就输入了一个2*3的矩阵,第一行数据为123,第二行数据为456。引用方法是:矩阵变量[,],如刚才的矩阵,输入a[2,3]会输出6a[1,3]会输出3
 楼主| 发表于 2010-11-26 01:09:47 | 显示全部楼层
其实我不知道写这些东西到底有没有意义
有多少人会看
又能帮助到多少人
 楼主| 发表于 2010-11-26 01:18:44 | 显示全部楼层
不过我可以保证此贴不会太监
我会坚持到写完整个编程的教程
发表于 2010-11-26 09:53:37 | 显示全部楼层
肯定是有意义的,不仅于Nspire用户有意义,对89用户和其他68K用户也是相当有意义的。
发表于 2010-11-26 12:40:40 | 显示全部楼层
终于待续了么。。还能继续么
 楼主| 发表于 2010-11-26 12:49:53 | 显示全部楼层
本帖最后由 Elatha 于 2010-11-28 01:05 编辑

回LS
还能继续
教程的设计需要大家的参与,不是我一个人就能搞好的。
我也不是万能的,我也有东西不懂。
比如控制结构的try我就不会用
我只能写出我会的东西
有错漏敬请指出
发表于 2010-11-28 14:50:55 | 显示全部楼层
肯定是有意义的,不仅于Nspire用户有意义,对89用户和其他68K用户也是相当有意义的。
chsi 发表于 2010-11-26 09:53

像a:=3这么简单的就省略了伐
发表于 2010-11-28 20:42:02 | 显示全部楼层
果然是自己加入精华..还是精3..
发表于 2010-11-29 09:43:24 | 显示全部楼层
1# Elatha 好!
发表于 2010-11-30 23:33:24 | 显示全部楼层
非常得有意义 尤其对刚刚拿到NS的同学们

其实多看看老外编的程序也能学习不少 还好NS的程序没法闭源
发表于 2010-12-15 17:03:56 | 显示全部楼层
老兄坚决支持你,赶快出第二集吧,我刚买NS,可是编程篇是英文---白瞎。
你先传的程序也行,我会FX-5800的编程,再次谢谢了。QQ:[email protected]
发表于 2010-12-15 17:13:04 | 显示全部楼层
ns的变量名能不能用词组? 变量可以大写和小写字母都能用吗?
  如:Length=a+b
           Width=cd
           Area=Length*Width
 楼主| 发表于 2010-12-15 23:45:19 | 显示全部楼层
回ls
可以
发表于 2010-12-16 11:19:48 | 显示全部楼层
恩,Ns中变量不分大小写
发表于 2010-12-19 01:44:25 | 显示全部楼层
请问有测绘程序吗?
发表于 2010-12-21 09:11:37 | 显示全部楼层
呵呵 学习 看看
发表于 2011-1-8 22:01:29 | 显示全部楼层
Nspire程序设计基础教程

写在前面的话:nspire中所有的函数都是可以单独在计算器页面使用的,所以本教程所有的语句都可以在计算器页面运行,初学者一定要多试,才能熟练掌握。


一、编程基础知识
变量:即可 ...
Elatha 发表于 2010-11-26 01:08


楼主加油。。。你的帖子很有意义。。

有充裕的时间我要买个CAS的来玩玩。。。中文的很喜欢
发表于 2011-2-8 11:21:17 | 显示全部楼层
真是好东西呀!
发表于 2011-2-20 17:32:56 | 显示全部楼层
强烈反对置顶
发表于 2011-2-20 17:47:40 | 显示全部楼层
强烈反对置顶
imath 发表于 2011-2-20 17:32
我通知过楼主了。本来精3已经改精1了,再不更新就取消置顶。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-14 12:48 , Processed in 0.079529 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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