数字偏差问题
这个程序,n从47开始就有个偏差,明明*910,可是得出的结果却是*911,奇怪,为什么自动把910变成911了呢?(defun c:f1 ()
(setq n 0)
(repeat320
(jn_frame1 n)
(princ (strcat"\nn is :") ) (princ n)
(princ (strcat" frame is :") ) (princ frame)
(setq n (+ n 1))
)
)
(defun jn_frame1 (n)
(if (<= n 47) (setq frame(* n 800)))
(if (and (> n 47)(<= n 305))
(progn
(setq frame0 (* 47 800))(setq frame1(- n 47))(setq frame2 (* frame1 910))
(setq frame (+ frame0 frame1 frame2))
;(princ (strcat"\nframe is :") ) (princ frame)
)
)
(if (> n 305)
(progn
(setq frame0 (* 47 800))(setq frame1(- 305 47) )(setq frame2(* frame1 910) ) (setq frame3(- n 305) )(setq frame4(* frame3 800) )
(setq frame (+ frame0 frame1 frame2 frame3 frame4))
;(princ (strcat"\nframe is :") ) (princ frame)
)
)
) 本帖最后由 ljpnb 于 2011-6-26 06:04 编辑
(defun c:f1 ()
(setq n 0)
(repeat 320
(jn_frame1 n)
(princ (strcat "\nn is :"))
(princ n)
(princ (strcat " frame is :"))
(princ frame)
(setq n (+ n 1))
)
(princ)
)
(defun jn_frame1 (n)
(if (<= n 47)
(setq frame (* n 800))
)
(if (and (> n 47) (<= n 305))
(progn
(setq frame0 (* 47 800))
(setq frame2 (* (- n 47) 910))
(setq frame (+ frame0 frame2))
)
)
(if (> n 305)
(progn
(setq frame0 (* 47 800))
(setq frame2 (* (- 305 47) 910))
(setq frame4 (* (- n 305) 800))
(setq frame (+ frame0 frame2 frame4))
)
)
)
回复 ljpnb 的帖子
果然是高手,问题被找出来了,哈哈!
非常感谢!……………
页:
[1]