Thứ Tư, 7 tháng 4, 2010
Hướng dẩn viết lisp bài 18:
*Hàm If ứng dụng rất nhiều nhé bạn cần hết sức linh hoạt trong việc dùng nó để tạo tương tác giữa người dùng với lisp.
-Quay tuốt lại cái lisp array cái vòng tròn nhé: Bây giờ sau khi chọn điểm a và b, vẽ đường thẳng ab, vẽ đường tròn tâm c đường kính ab, vẽ đường tròn tâm a bán kính ab, thêm chức năng hỏi có muốn array cái đường tròn này ra không nếu nói có thì array còn nói không thì kết thúc lệnh.
(defun c:doanthang ()
(setq a (getpoint "\nChon diem: "))
(setq b (getpoint a"\nChon diem: "))
(command ".line" a b "")
(setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
(command ".circle" c a)
(command ".circle" a b)
(setq traloi (strcase (getstring "\nBan co nuon array hay không? Y/N:")))
(if (= traloi "N") (PROGN
)
)
(IF (= traloi "Y") (PROGN
(setq sl (getstring "\nSo luong:"))
(command ".array" "last" "" "p" c sl "" "")
)
)
(princ)
)
Bạn để ý dòng (setq traloi (strcase (getstring "\nBan co nuon array hay không? Y/N:"))) dùng hàm strcase trước hàm getstring để đảm bảo chuổi nhận được khi nhập vào luôn luôn là viết hoa vì hàm if kiểm tra mình để kiểm tra giá trị traloi là viết hoa như vậy thì khi bạn nhập chử Y là thường hay là hoa thì kết quả hàm if mới thực hiện việc array cái vòng tròn được.
*Đấy bây giờ bạn thấy mấy cái lisp giống lisp rồi đó nghen làm việc có trình tự lớp lang có hỏi có trả lời đây là giao tiếp với lisp đó. Ngon hen!
Đăng ký:
Đăng Nhận xét (Atom)
Bài này sai chính tả nhiều quá anh Duy ơi
Trả lờiXóa(setq traloi (strcase (getstring "\nBan co nuon array hay không? Y/:"))) chữ N đâu rùi
Đấy bây giờ bạn thấy mấy cái lisp giống lisp rồi đó nghen làm việc có trình tự lớp lang có hỏi có trả lời đây là giao tiếp với lisp đó. Ngon hen!
Cám ơn anh nhiều.
jula_julo@yahoo.com.vn
Sorry! Đã chỉnh. Lỗi mất chử N vì vốn nó được để trong dấu ngoặc lớn nhỏ <> mà cái này thì bị html nuốt mất.
Trả lờiXóa