iCAx开思网
标题:
LISP教學-02 如何定義一個函數
[打印本页]
作者:
sjgau
时间:
2004-6-7 08:54
标题:
LISP教學-02 如何定義一個函數
在 AutoCAD 指令行下面,想要計算
sin(0.5)= ?
只要輸入
(sin 0.5) [Enter]
即可得到 0.479426
0.5 是 弳度 radian
如果經常需要計算 x^3
可以編輯一個 LISP 程式,內容如下
; 這行是註解
(defun cubic(x / ); 這樣也是註解
(* x x x)
); end of defun
(princ); 為何要多這一行,以後解釋
; ------------------------------------------------------
假設,存檔到 C:\test02.lsp
回到 AutoCAD 指令行下面,輸入以下指令
(load "c:/test02.lsp")
(cubic 2) [Enter]
即可看到答案:8
試試看
作者:
sjgau
时间:
2004-6-7 11:19
AutoLISP 就是 括號( 對 括號)
括號要成對。
定義一個函數 或 副程式
(defun name(參數 / 區域變數)
; 這裡放函數裡面的程式行
); end of defun name()
參數和 / 之間,要空一格。
/ 和區域變數之間,也要空一格。
name 是函數或副程式的名稱
函數裡面的做後一行的計算結果,
就是這個函數的 return-value
作者:
sjgau
时间:
2004-6-8 10:27
試試看
以上的函數 cubic
輸入以下的指令
(cubic 10000)
會得到明顯錯誤的答案,有人知道是
為什麼嗎?
作者:
wayne
时间:
2004-6-8 13:31
sjgau wrote:
試試看
以上的函數 cubic
輸入以下的指令
(cubic 10000)
會得到明顯錯誤的答案,有人知道是
為什麼嗎?
我想是整數的關係吧! 若輸入
(cubic 10000.0)
則可得到正確的答案, 請老師補充說明更詳盡可以嗎?
作者:
sjgau
时间:
2004-6-8 13:55
OK!
程式設計的口訣之一,如下:
整數運算,絕對不會有誤差。
運算結果超出允許的範圍,會產生錯誤的答案。
實數,浮點數的運算,一定會有誤差。
運算結果超出允許的範圍,會的到 0,
或是讓程式終止。
我們將在後續的討論中,在適當的時候,
繼續研究這個主題。
作者:
sjgau
时间:
2004-6-8 16:16
我想是整數的關係吧! 若輸入
(cubic 10000.0)
則可得到正確的答案, 請老師補充說明更詳盡可以嗎?
//我們以後會有機會詳細的研究
整數,浮點數的相關議題。
目前,先稍安勿躁。
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3