TCL语言笔记:TCL练习】的更多相关文章

一.什么是TCL Tcl 全称是 Tool command Language.它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握. Tcl 语言是一个解释性语言,所谓解释性是指不象其他高级语言需要通过编译和联结,它象其他 shell 语言一样,直接对每条语句顺次解释执行. Tcl 数据类型简单.对 Tcl 来说,它要处理的数据只有一种——字符串.Tcl 将变量值以字符串的形式进行存储,不关心它的实际使用类型. 二.TCL的基本语法 1.输出:tcl使用”puts"关键字来作为输…
一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储,每个元素存取开销几乎相同,而列表的存取数据花非时间与其长度成正比. 二.数组的定义与格式 数组索引是由圆括号()来指定的,每个数组元素变量名的格式是“数组名(索引值)”.数组 元素使用 set 命令来定义和赋值: [语法]:set  arrName(index) value 也可以用 array…
一.引言 控制结构允许程序根据不同的状态.条件和参数来选择不同的处理和执行路径,从而使代码具有更强的灵活性.健壮性和可读性. Tcl 提供了 if.if/else.if/elseif.foreach. for.while 和 switch 命令来管理控制结构.这些命令和其他语言如C语言的条件语句的作用相同.需要区别的是在 Tcl 中所有控制结构都是由相应的命令来实现,而 C 语言中则是一条控制语句. 控制结构通常要求带有一个延迟执行命令体或者过程体,这个命令体需要用花括号括起来以加以界定. 二.…
一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10  ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 set p 1.0; set a [expr acos($p)   => a=0.0 asin(arg) 反正弦 atan(arg) 反正切 atan2 比值取反正切 ceil(arg) 返回不小于 arg 值的整数值 cos(arg) 余弦 cosh(arg) 双曲余弦 double(arg) 转换…
一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命令字符串. 二.TCL列表相关命令 命令 说明 list arg1 arg2 ... 创建一个列表 lindex list  index 返回列表 list 中的第 index 个元素(element)值 llength list 计算列表 list 元素个数 lrange list index1…
一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.string命令列表 命     令 说      明 string bytelength str 返回用于存储字符串的字节数. string compare ?-nocase? ?- length len? str1 str2 根据词典顺序比较字符串.-nocase 选项表示大小写无关.-length 选项…
1,表达式 1.1 操作数 TCL表达式的操作数通常是整数或实数.整数一般是十进制的, 但如果整数的第一个字符是0(zero),那么TCL将把这个整数看作八进制的,如果前两个字符是0x则这个整数被看作是十六进制的. 1.2运算符  TCL语法形式和用法跟ANSI C中很相似 1.3 函数 TCL中支持的数学函数如下 abs( x) Absolute value of x. acos( x) Arc cosine of x, in the range 0 to p. asin( x) Arc si…
1,一个TCL脚本可以包含一个或多个命令.命令之间必须用换行符或分号隔开 2,置换 substitution %set y x+100                               //y的值是x+100,而不是我们期望的110 2.1变量置换variable subtitution     变量置换由一个$符号标记,变量置换会导致变量的值插入一个单词中 %set y $x+100                   //y的值是10+100,这里x被置换成它的值10 10+100…
一.练习 1.二进制转十进制 proc b2d {b} { ;set len [string length $b] } {$i<$len} {incr i} { incr sum [expr ,$len-$i-))] } return $sum } 2.十进制转二进制 proc d2b {d} { set b "" } { set b "[expr $d%2]$b" ] } return $b } 3.根据长度转换成子网掩码 proc len2mask {le…
一.关于随机数的练习 1.随机生成一个最大值到最小值之间的整数 proc random {min max} { return [expr round(($max-$min)*rand()+$min)] } 2.生成num个min到max之间的不重复的随机整数 proc randomUnique {min max num} { array set arr {} #如果要求生成的数量超过max和min相减的个数+1 if {$num>[expr $max-$min+1]} { return "…