TCL语言编程_NX

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一)、准备知识:TCL语言—脚本语言P87(注:本文所列程序全部通过了验证)

1、安装软件:ActiveTcl8.5,软件的打开和退出(exit)

2、格式:命令选项参数1 参数2 参数3….参数N

注:中间必须用空格或TAB隔开

交互式与非交互式:TCL的一个命令行,以交互式的方式执行,边编制边执行;TCL脚本程序是以非交互式的方式运行,通过SOURCE打开执行。讲课时会分别进行演示。

特殊符号的使用:

;-----分开命令行

# ------解释,写在命令行后,单独一行时可不写“;”

$ ----置换变量的值,可用到二重置换

\ -----反斜杠置换,对引用特殊符号分配特种功能比如\n 换行;\t 空格;\$ 关闭$的置换功能;\ 用在引用中可续行(持续添加字符串);紧跟在字符串后用于连接后面的字符串

[ ] ----置换嵌套命令,返回最后一个命令的值

注:置换是指取出变量的值或变量运算后的返回值;有的书上称为替换。

" "-----引用标记字符串为一个参数,如出现换行、$和[ ]等置换命令仍有效

{ }-------引用标记字符串为一个参数,视所有字符视为普通字符,置换无效

4、表达式:expr 数学运算可以运算+ - * \ sqrt 三角函数

5、变量:

变量的类型分为标量和数组, 变量名区分大小写.

对变量赋值时,数据类型不用指定(默认为10进制整数),也无须提前声明,如果想改变数据类型必须按规定格式书写,如通过int double 来改变参与运算的参数类型。当标记字符串为一个参数,如出现$等置换命令仍有效;程序外的变量是全局性的:子程序内不能看到,但用全局命令global 就可以在子程序内外都可以看到。

6、赋值与显示变量内容(置换)

set 变量参数

注:参数可以是表达式或变量置换等,清除已赋数据使用unset

puts $变量(有时在puts后会写上标准输出stdout—标准输出)

练习:(1)对参数a 和b分行赋值,并显示执行结果

(2)利用puts输出字符串功能,显示如下结果

ABCDEFG

HIJ

KL

MNO

(3)定义a1.1为变量,并赋值为20,将变量a1.1的值赋给变量b,最后显示变量b的值

(4)算术计算:a. 求4÷7的值,小数点保留3位(预先通过tcl内部变量tcl_precision

定义小数点位,缺省值tcl_precision=0小数点为12位)

b.已知一直角三角形,斜边长为10mm,一直角边长6,求另一直角边长

举例:jisuan.tcl

set c 10

set b 6

set a [expr sqrt($c*$c-$b*$b)]

puts "Another edge len= $a"

或交互式执行set c 10;set b 6\

;puts "Another edge len= [expr sqrt($c*$c-$b*$b)]"

7、集合:list

格式:list 集合元素

赋值set 变量[list集合元素]

list结构下标是从零开始,引用方式使用命令:lindex ,格式:lindex 集合元素位置如:显示集合yy的第二个元素

set yy [list 0 ac 1 vy 2 ii 3 p]

puts " [lindex $yy 1] "

列出所有元素使用foreach 循环;

格式:set i 0;

foreach j $yy { ;

puts "$j is item number $i in list yy"

incr i;

}

获取list中的元素个数:llength $list

8、数组:(重点掌握一维数组)

一维数组格式:数组名(下标)

下标下标可以是任何字符,对数组赋值同样使用set命令,清除使用unset 数组名

有关数组的关键指令:

*array

格式:array 选项数组关系项

(1)判断数组是否存在:array exists 数组名,存在返回值1 ;否则0

(2)对数组赋值:array set 数组名相关项(相关项为一个变量,存放下标和赋值)(3)获取数组的个数(列数):array size 数组名

(4)获取数组内容和下标变量:array get 数组名

(5)获取数组id :array startsearch 数组名返回第一项id

(6)浏览数组:使用foreach

foreach id [array names yy] { ;

puts "$yy($id) has ID: $id"

}

可通过list命令对数组赋值

格式:array set 数组名[list 下标赋值……]

输出数组全部内容格式parray 数组名

练习:

(1)将数组hh(0)=”abc” hh(1)=”cd” hh(2)=”efg”赋给数组gt,并输出gt(2)的内容

set ad "0 abc 1 cd 2 efg"\;array set hh $ad\;array set gt[array get hh]

parray gt

(2)将刀具参数定义为一维数组,并显示

举例:set str "dia 10 rad 5 len 50"

array set tool $str

foreach {key value} [array get tool] {

puts "$key: $value" }

或parray tool

相关文档
最新文档