График функции 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))))

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы