当前位置: 代码迷 >> 综合 >> tcl/tk学习笔记:数学表达式与 expr 命令
  详细解决方案

tcl/tk学习笔记:数学表达式与 expr 命令

热度:15   发布时间:2024-01-21 01:08:05.0

教材:陈涛 Tcl 编程初步 tcl/tk入门经典(2)

1.除了自加自减,tcl的数学和逻辑运算符,运算符优先级,数学函数与相似。

2.自加自减速运算用incr命令完成

incr varName ?step?  没有后一个参数表示加1,incr a -n表示减n。

3.expr命令将它的参数做表达式处理。expr 4+2;expr log10(100);

4.if语句

这个命令会将他的第一个参数当做表达式

if {x<10} {set a=x}

5.在tcl8.5中,当表达式解析器遇到像sin($x),log10($y)等数学函数时,它会将函数替换为对tcl::mathfunc命名空间中一个普通命令的调用。

例 expr {sin($x+$y)}和expr {[tcl::mathfunc::sin [expr {$x+$y}]]}一样。

如果数学函数有多个参数

例 expr pow($x+2,$y/2)和expr {[tcl::mathfunc::pow [expr {$x+2}] [expr {$y/2}]}

6.tcl允许定义自己的数学函数,只在tcl::mathfunc命名空间中创建新的命令就可

例 proc tcl::mathfunc::avg {args} {

            if {[llength $args] == 0} {

                    return -code error "too few argurments to math function avg."

             }