《⽤图形计算器学编程》⼊门篇
《⽤ TI 图形计算器学编程》—⼊门篇
要学编程,应该从哪种语⾔⼊⼿?笔者推荐从 BASIC 语⾔⼊⼿,因为它简单易学,在许多国家都作为⼀种计算机程序的教学语⾔和⼊门语⾔. TI-Nspire TM CX CAS 中⽂彩屏机,⾥⾯的程序语⾔是 TI-Basic 语⾔,拥有数量庞⼤的内置函数,下⾯我们通过此类 TI图形计算器,⼀起⾛进 BASIC 的学习.
⼀、BASIC 的故事
BASIC 的诞⽣,从⼀个传奇的故事开始.
1964 年,美国达特茅斯⼤学的 Thomas E. Kurtz(1928–)和 John G. Kemeny (1926.5.31-1992.12.26,原籍匈⽛利)在Fortran II 和 ALGOL60 的基础上设计了⼀种新的计算机语⾔,命名为“Beginner's All-purpose Symbolic Instruction Code” ,意为初学者通简称BASIC. 这个简单易学的计算机程序设计语⾔当时只有17条语句,⽤符号指令代码,
12个函数和3个命令,这就是 BASIC始祖——Dartmouth BASIC. 第⼀个BASIC程序(实际是⼀个编译器)于当地时间1964年 5⽉ 1 ⽇凌晨4 点在⼀台GE-265 (IBM 704) 主机操作者是Mike Busch和John McGeachie. 从此Kurtz和Kemeny作为BASIC 中成功运⾏,
语⾔之⽗被永远载⼊史册.
BASIC 语⾔⾃诞⽣起就显⽰出了强⼤的⽣命⼒,各种版本层出不穷. 从 APPLE-Ⅱ机上⽤的 APPLE SOFT BASIC,到LASER-310 上⽤的MSBASIC,到 IBM-PC 及其兼容机上⽤的 BASICA 和 GW-BASIC,再到 MS-DOS 上的 MS BASIC、QuickBASIC 和 VisualBasic 1.0,直⾄ Windows 下的 Visual Basic和 Linux 下的 XBasic、YaBASIC 等等, BASIC ⽆处不在,甚⾄许多电⼦游戏机(例如⼩霸王学习机)和微型电⼦词典(例如⽂曲星)中都实现了 BASIC. 从诞⽣之初,BASIC 语⾔就以其简单、易学和对硬件要求低等特点受到了⼴⼤程序设计⼈员,特别是电脑初学者的青睐,历经四⼗载,显⽰了其顽强的⽣命⼒. 如今BASIC语⾔在许多国家都作为⼀种计算机程序的教学语⾔和⼊门语⾔. 谭浩强教授⼋⼗年代所著《BASIC 语⾔》⼀书,曾经多次再版,现在的发⾏量已经超过千万之巨,BASIC 语⾔在中国有着⼤量拥趸,许多编程爱好者和专业⼈⼠也⼀直对它情有独钟.
⼆、TI-BASIC 简介
TI-nspire 系列所使⽤的 TI-Basic 语⾔是⾮常简单的⼀门语⾔,同时也是局限性很⼤的⼀门语⾔. 这门语⾔拥有数量庞⼤的内置函数,其中相当⼀部分是数学函数. 在 nspire 上写出的所有程序都需要以函数的形式来运⾏,这⼀点会在具体的例⼦中解释.创建⼀个 Nspire 程序,先新建⼀个计算器后,
然后按b911 即可新建⼀个程序,如右图.
TI-Nspire程序分为 “程序” 和 “函数” 两类.“程
序”能够定义全局变量,可以有任意数量的输出(或
者不输出),并且能够调⽤其它的程序或函数. ⽽ “函
数”则只能输出⼀个结果,不能定义全局变量,也
不能调⽤其它的程序或函数.
运⾏程序的⽅法是:在“计算器”页⾯⾥输⼊程序名和左括号,然后输⼊各项参数,输⼊右括号后按 Enter 键.
三、程序基础知识
(⼀)、整体结构与数据类型
Nspire的程序的整体框架为:
“程序”类 “函数”类
Define [程序名](参数 1,参数 2,…)= Prgm
[命令⾏]
EndPrgm Define [程序名](参数 1,参数 2,…)= Func
[命令⾏]
EndFunc
例如 Nspire上的 Helloworld程序可以⽤如下的代码实现:
Define hw( )=
Prgm
Disp “Helloworld!”
EndPrgm
在 nspire编程中,数据的类型分为数字、字符串、数组、矩阵、函数和程序. 函数和程序在前⽂已经介绍过, “数字”指所有的整数和浮点数; “字符串”指在双引号中的数据,如“Helloworld” ;
“数组”指在花括号中的⼀组数据,如{1,3,5,7,9};
“矩阵”指以矩阵形式呈现的⼀组数据. 数据的类型可⽤ getType()函数判定.
操作提⽰:在计算器页⾯,按b911 新建⼀个程序,按b21 检查语法并保存,按/e 在计算窗⼝与程序窗⼝跳转. 在计算窗⼝,按h 可调⽤程序(或变量) . 按/r 可调⽤字符串符号,按/)可调⽤数组符号“{}” ,按t 可调⽤⼀系列矩阵符号.
(⼆)、变量的定义,即赋值
Nspire程序的变量可以通过三种⽅式定义. 例如把变量a定义为 3,有如下三种⽅式:⽅式 1. a:=3 ⽅式 2. 3→a ⽅式 3. Define a=3
除了数字以外,变量也可以⽤同样的⽅式定义为其他的数据类型.
此外,与变量操作相关的⼏个函数也要清楚.
1. Local函数,其作⽤是使变量仅在该程序或函数中有效,不作为全局变量.
计算机编程入门网站
格式为: Local [变量名 1],[变量名 2],……
2. Delvar函数,其作⽤是将变量删除,此操作也同样适⽤于程序的删除.
格式为:Delvar([变量名])
3. CopyVar函数,其作⽤是将变量 1 的内容复制到变量 2,此操作同样适⽤于程序的复制.
格式为:CopyV ar([变量 1],[变量 2])
(三)、输⼊输出指令
Nspire程序有两种输⼊指令和三种输出指令.
1. Request输⼊指令,格式为:Request [“提⽰”,] 变量名 [,0]
输⼊指令的第⼀种为 Request,它要求⽤户输⼊的数据为数字,提⽰部分需要使⽤字
符串形式. 后⾯的“0”
,表⽰在输出的结果⾥不显⽰这⼀⾏的 Request 提⽰和⽤户输⼊值.
例:Request “1+1=?”, ans, 0
它表⽰若⽤户输⼊⼀个数值,它将被存⼊变量ans.
2. RequestStr输⼊指令,格式为:RequestStr [“提⽰”,] 变量名 [,0]
RequestStr 与 Request 的唯⼀不同在于它对⽤户输⼊的值将以字符串形式存⼊变量.
例:RequestStr “What’s Your Name?”, name, 0
3. Disp 输出指令,格式为:Disp [内容]
Disp 是最基本的输出指令,它在屏幕上显⽰指定的内容,该内容可以是除程序以外的任意数据类型.例:Disp“Helloworld”
Disp a+2
4. Tex输出指令,格式为:Text “[内容]” [,0]
Text 指令会以弹出对话框的形式输出内容, 0 的作⽤与 Request 中的 0 相同. 内容要求为字符串格式.例:Text “You Win!”, 0
5. Return输出指令,格式为: Return [内容]
Return 指令为函数专⽤的输出指令,它使函数返回指定的内容.
例:Return factor(x)
(四)、控制指令
1. If 条件语句
If句是最常⽤的条件语句,它有不同的形式.
⑴ If形式,格式为:If [条件 a] [命令 a]
最基本的 If句,它表⽰:如果条件 a成⽴则执⾏命令a. 值得注意的是,命令a 只能有⼀⾏.
例:If x>5
x:=x-5
⑵ If-Then-EndIf形式,格式为:If [条件 a] Then [命令 a] EndIf
与上⼀种不同的是,命令 a 从 Then之后延续到 EndIf 之前,没有长度限制.
例:If x>5 Then
x:=x-5
Disp 2x
EndIf
⑶ If-Then-Else-EndIf形式,格式为: If [条件a] Then [命令a] Else [命令b] EndIf
它表⽰:如果条件 a成⽴则执⾏命令 a,否则执⾏命令 b. 在⼀个 If句中只能出现⼀个 Else.
例:If x>5 Then
x:=x-5
Disp 2x
Else
Disp 2x
EndIf
⑷ If-Then-ElseIf-Then-EndIf形式,格式为:
If [条件 a] Then [命令 a] ElseIf [条件 b] Then [命令 b] EndIf
它表⽰:如果条件 a成⽴则执⾏命令 a,如果条件 a 不成⽴⽽条件b 成⽴则执⾏命令 b. 在⼀个 If句中可以出现任意数量的ElseIf…Then.
例如:If x<3 then
Disp “Too Small”
ElseIf x>3 Then
Disp “Too Big”
ElseIf x=3 Then
Disp “Good!”
2. For 循环语句
For 是 nspire三种循环句当中的⼀种.
格式为: For [变量名], [起始值], [结束值], [间隔] [命令⾏] EndFor
例如:For x,1,5,1
Disp 2x
EndFor
它表⽰:变量x 的值由1 增加到 5 且以1 为间隔递增,x 每增加 1就输出⼀次 2x的值. 所以这段代码的输出应当为:
2
4
6
8
10
3. While 循环语句
While也是⼀种循环句,它的基本格式为: While [条件] [命令⾏] EndWhile
它表⽰:如果条件成⽴则不断重复执⾏指定的命令,直到条件不成⽴为⽌. 所以在 While句中⼀定要有⼀个不断改变的量,否则就会成为⼀个死循环.
例如:x:=1
While x<6
Disp 2x
x:=x+1
EndWhile
这段语句的功能同上节的 For 语句相同.
4. Loop 循环语句
Loop是⼀种死循环句,所以需要与 Exit 指令配合使⽤.
格式为: Loop [命令⾏] EndLoop
它的作⽤就是⼀直重复执⾏指定的命令.
例如:x:=1
Loop
Disp 2x
If x≥5
Exit
EndLoop
这段语句的功能同上两节的语句相同.
5. Try 语句
Try是⾮常特殊的⼀种句法,它的基本格式为:Try [命令 a] Else [命令 b] EndTry 它表⽰:如果命令 a能够执⾏则执⾏命令 a,否则执⾏命令 b.
例如:Request “Enter a number:”, num, 0
Try
If num<0
Disp–num
Else
Disp “Invalid Input”
EndTry
这段代码要求⽤户输⼊⼀个数字,如果该数⼩于零,则输出它的相反数. 但是,如果⽤户输⼊的不是⼀个数字⽽是其它的数据类型或未定义的变量,程序则⽆法判定其是否⼩于零,此时便转⽽执⾏ Else后的命令,输出“Invalid Input”.
6. ClrErr 指令
此命令清除当前的错误,并设置了错误的系统变量为零.
7. PassErr 指令
PassErr将传递“try ... EndTry”的⼀个错误.
(五)传送指令
1. Lbl 和 Goto
简单来说,Lbl 就是标签,Goto就是前往标签.
例:Lbl start
x:=x-10
If x>0
Goto start
这段代码的功能是将x 值减 10,如果减 10 后的值⼤于零,则返回上⼀步再减 10.
2. Exit 和 Stop
Exit 只在循环句中有效,表⽰跳出该循环. Stop的作⽤是直接终⽌程序(在函数中⽆效)
例:For i,1,10,1
x:=10+I
If int(x/6)=x/6

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。