График функции y = sin x / cos x - Lisp
Формулировка задачи:
Доброго времени суток.
В mulisp под DOS необходимо нарисовать график функции y = sin x / cos x в Lisp.
Цикл я описал, код работает, но график не рисуется.
Помогите, пожалуйста, исправить код, так-как я абсолютный новичок в LISP.
Код
Спасибо.
(load 'common87) (video-mode 16) (setq x 1) (setq y 0) (loop (if (= (cos 90) 0) then (progn (setq x (+ x 2)) )) (setq y (/ (sin x)(cos x))) (set-cursor x y) (plot-dot x y color) (setq x (+ x 1)) (when (> x 360) (return x)) )
Решение задачи: «График функции y = sin x / cos x»
textual
Листинг программы
(defun grafik (f a b) (let* ((w (gensym 'w)) (ymax (funcall f a)) (ymin (funcall f b)) (y 0) (xl 0) (yl 0) (dx (/ (- b a) 200.0))) (grwCreate w 300 300 "График" _WHITE) (grwSetParm w 3 0 _RED) (grwShow w) (iter (for x from a to b by dx) (setf y (funcall f x)) (when (> y ymax) (setf ymax y)) (when (< y ymin) (setf ymin y))) (setf ymax (+ ymax (* 0.1 (- ymax ymin)))) (setf ymin (- ymin (* 0.1 (- ymax ymin)))) (grwScale w a b ymin ymax) (setq xl a yl (funcall f a)) (iter (for x from (+ dx a) to b by dx) (setq y (funcall f x)) (grwLine w xl yl x y _RED) (setq xl x yl y))))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д