乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 37|回复: 1

[LISP]计算单行文字+、-、*、/的程序

[复制链接]

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2005-11-22 10:10:00 | 显示全部楼层 |阅读模式
  本人前几天找到一个计算单行文字的用LISP语言编的可实现+、-、*、/的程序,加载后从命令行输入JS就行了,共享一下,代码如下:
(defun *error* (ERROR)
     (princ "error:")
     (princ "CAO ZUO ERROE")
     (PRINC "\n please try a time")
     )
(defun getss(/ SS N I NAME0 NAME X0 X1)
     (INITGET (+ 1 2 4))
     (setq ss (ssget '((0 . "TEXT"))))
     (if (= ss nil) (setq ss (ssadd)))
     (setq ssa (ssadd))
     (while (/= (setq n (sslength ss)) 0)
            (progn
            (setq i 1)
            (setq name0 (ssname ss 0))
            (setq x0 (caddr (assoc 10 (entget name0))))
            (while (
(DEFUN C:JS(/  NN II ENT NAME TXT PP P0 PP0 NAME1
              P ST ZH ZW ANG I N W TEMP)
     (SETvar "BLIPMODE" 0)
     (SETvar "CMDECHO" 0)
     (PROMPT "\n    FIRST-SSGET:")
     (INITGET (+ 1 2 4))
     (getss)
     (SETQ SS1 ssa)
     (PROMPT "\n    SECOND-SSGET:")
     (getss)
     (SETQ SS2 ssa)
     
     (INITGET (+ 1 2 4))
     (IF (= (SSLENGTH SS2) 0)
         (SETQ JSF (GETSTRING "\n    JI SUAN FU:?  "))
         (SETQ JSF (GETSTRING "\n    JI SUAN FU:?  ")))
     (WHILE (AND (/= JSF "+") (/= JSF "-") (/= JSF "*") (/= JSF "/") (/= JSF ""))
            (GETSTRING "\n    JI SUAN FU:?  "))
     (IF (AND (= (SSLENGTH SS2) 0) (= JSF "")) (SETQ JSF "+"))
     (IF (AND (/= (SSLENGTH SS2) 0) (= JSF "")) (SETQ JSF "*"))
     
     (SETQ P0 (CDR (ASSOC 10 (ENTGET (SSNAME SS1 0)))))
     (INITGET (+ 1 2 4))
     (SETQ PP0 (GETPOINT "\n    TEXT-POINT:?"))
     (SETvar "BLIPMODE" 0)
     (IF (= (SSLENGTH SS2) 0)            
           (PROGN
                 (SETQ XI (GETREAL "\n   XU CHU DE XI SHU [/] :?"))           
                 (IF (= XI NIL) (SETQ XI 1)))
           (PROGN
                 (SETQ XI (GETREAL "\n   XU CHU DE XI SHU [/]:? "))
                 (IF (= XI NIL) (SETQ XI 100))
            ))
     (SETQ WS (GETINT "\n    XIAO SHU WEI:? "))
     (IF (= WS NIL) (SETQ WS 2))
     (SETQ NN1 (SSLENGTH SS1))
     (SETQ II 0)
     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     (IF (= (SSLENGTH SS2) 0)(PROGN
         (WHILE (= NN1 NN2) (SETQ NN NN2) (SETQ NN NN1))
       (WHILE (  "))
     (WHILE (AND (/= JSF "+") (/= JSF "-") (/= JSF "*") (/= JSF "/") (/= JSF ""))
            (GETSTRING "JI SUAN FU:?  "))
     (IF (= JSF "") (SETQ JSF "*"))
     (SETQ XI (GETREAL "\n  XI SHU:?"))
     (SETQ P0 (CDR (ASSOC 10 (ENTGET (SSNAME SS 0)))))
     (SETvar "BLIPMODE" 0)
     (INITGET (+ 1 2 4))
     (SETQ PP0 (GETPOINT "\n  TEXT-POINT:?"))
     (SETvar "BLIPMODE" 0)
     (SETQ WS (GETINT "\n  XIAO SHU WEI:? "))
     (IF (= WS NIL) (SETQ WS 1))
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     (SETQ NN (SSLENGTH SS))
     (SETQ II 0)
     (WHILE ("))
     (IF (= XI NIL) (SETQ XI 0.888))
     (SETvar "BLIPMODE" 0)
     (SETQ WS (GETINT "\n    XIAO SHU WEI:? "))
     (IF (= WS NIL) (SETQ WS 2))
     
     (SETQ NN1 (SSLENGTH SS1))
     (SETQ II 0)
     (SETQ TXT 0)
     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     (IF (AND (/= SS2 NIL) (/= SS1 NIL)) (PROGN
       (SETQ NN2 (SSLENGTH SS2))
       (IF (>= NN1 NN2) (SETQ NN NN2) (SETQ NN NN1))
       (WHILE (
       (SETvar "BLIPMODE" 0)
       (SETvar "CMDECHO" 0)
       (PRINC)
           )
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
3
发表于 2012-12-13 15:49:00 | 显示全部楼层
研究一下,感觉还是比较靠谱
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-6-29 22:39 , Processed in 0.928319 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表