将getint()整数存储到l
你好由于我的“初学者”会员资格已经无效(谢天谢地,从某种哲学角度来说),我被迫学习autolisp的ABC,所以请善待我
阅读《帮助》之后,我开始用我学到的表达方式为自己创造任务。
我试图要求用户键入5个整数,然后将它们存储到一个列表中
下面的代码得到无限循环
(我自己编写代码)
;_ ask the user to type 5 integers
;_put them into a list
(defun C:demo (/ i)
(setq i 1)
(while
(and
(setq lst '(getint ("Type 5 numbers")))
(<= i 5)
(setq i (1+ i))
) ;_and
) ;_while
) ;_defun`
到
(setq lst '(getint ("Type 5 numbers")))
你说的5个数字是什么意思?一个五位数的整数?还是每个循环都是一位数?
对前者要谨慎
类型5编号:56236
需要一个介于-32768和32767之间的整数。
那会是什么?5位数还是单位数? 像Pbe一样,如果你想说多个整数,例如1 12 3456 2 34 567,那么你可以创建一个循环,当你按两次enter键时,它将停止。这种方式可以是1或5,也可以是所需的固定数字。12345 67890请告知。 我希望用户输入1到100之间的数字,然后我将开始玩这个列表45 56 12 64 87。它的方式并不重要,因为我只是在学习。你想展示一些解决问题的方法上帝保佑 一种简单的方法是对nil条目进行while循环检查
(setq lst (getint "\nType 5 numbers: ")) 示例:
(setq ansint 0) ; dummy to start
(while (/= ansint nil)
(setq ansint (getint "\Enter integer press enter to stop"))
(setq intans (cons ansint intans))
)
1000-9999=4位
是的,数字将是我的死亡
以下是确定位数的另一种方法:
(defun C:demo (/ i lst)
(while
(and
(< (length lst) 5)
(setq i (initget 7) i (getreal "\nEnter number from 1 to 100 : "))
)
(if
(<= i 100)
(print (Setq lst (cons (fix i) lst)))
(princ "\n<<Number out of range>>")
)
)
lst
(princ)
)
很好,李,我知道除了使用常用的算子外,还有一个数学解。
你能用其他人都能理解的方式解释函数日志吗?
干杯pBe
你还有多久?
简单解释一下,AutoLISP log函数返回所提供数字的自然对数(通常写为“ln”),即以e(2.718…)为底的对数,或逆指数函数。
对于一般的对数,我们有:
也就是说,b的对数底a产生一个数字,使得a提升到该数字将等于b。
在我的函数中,我计算一个值x,这样:
(defun C:demo2 (/ i lst)
(while
(and
(< (length lst) 5)
(setq i (initget 7)
i (getreal "\nEnter 5 digit number: "))
)
(if
(< 9999 i 100000)
(print (Setq lst (cons (fix i) lst)))
(princ "\n<<Number out of range>>")
)
)
lst
(princ)
)使用以10为底的对数可以很容易地计算(因为log_x(x)=1):
然而,由于我们只能使用自然对数函数(log),我们必须按以下方式进行:
8
页:
[1]
2