说实话 不是太懂
不过看意思 应该是当x为25时,不满足前面的几个条件,所以会执行T的部分
也就是N=A/B=1/2
数学上是05 但是在计算机里面有类型限制。一般来说,1/2这样的值结果只取整数部分 也就是0
类似的 5/2=2 10/3=3
(defun XX ( …… / ……))中XX后面括号里的都是局部变量,括号里没有的变量是全局变量。局部变量中斜杠前的变量是函数的自变量,斜杠后的不是函数的自变量。如
(defun try (x / y)
(setq y ( x x))
(setq z (+ x y z))
)
例子中x,y是局部变量,z是全局变量。局部变量中斜杠前的x是函数try的自变量,斜杠后的y不是自变量。
调用时
(setq x 1 y 2 z 3)
(try 4)
try函数执行时x=4,y=16,z=3,函数返回值为4+16+3=23
程序运行后变量值为x=1,y=2,z=23。函数调用后,局部变量的值没有发生变化,全局变量的值被改变了。可以认为函数内用相同符号表示的局部变量与函数外的全局变量是不同的变量,而函数内外的符号相同的全局变量是同一个变量。
另外,函数名称前具有c:的函数是不允许有自变量的,即函数c:XX的形式只能是
(defun c:XX ( / ……))
式中没有函数自变量。与上例意思相近的程序写成
(defun try (/ x y)
(setq x 4)
(setq y ( x x))
(setq z (+ x y z))
)
啰啰嗦嗦写了不少,不知你能否搞清楚。
你再试试这个
;draw square
(defun C:SQUARE()
(setq pt1(getpoint “输入左下角点”))
(setq L(getdist “输入边长:”))
(setq pt2(polar pt1 0 L))
(setq pt3(polar pt2 ( 05 pi) L))
(command“pline”pt1 pt2 pt3 pt4“C”)
(princ)
)
以上就是关于Autolisp求助:程序如下,当x=25时,为什么运行结果N=0;全部的内容,包括:Autolisp求助:程序如下,当x=25时,为什么运行结果N=0;、CAD Lisp 如何定义全局变量和局部变量 以确保主程序和子程序间变量可以传递并且程序运行完之后释放内存、为什么我的CAD在加载完一个AUTOLISP程序后(已经显示加载成功),但是运行该程序时打不开等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)