График функции y = sin x / cos x - Lisp

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. В mulisp под DOS необходимо нарисовать график функции y = sin x / cos x в Lisp. Цикл я описал, код работает, но график не рисуется. Помогите, пожалуйста, исправить код, так-как я абсолютный новичок в LISP. Код
Листинг программы
  1. (load 'common87)
  2. (video-mode 16)
  3. (setq x 1)
  4. (setq y 0)
  5. (loop
  6. (if (= (cos 90) 0)
  7. then
  8. (progn
  9. (setq x (+ x 2))
  10. ))
  11. (setq y (/ (sin x)(cos x)))
  12. (set-cursor x y)
  13. (plot-dot x y color)
  14. (setq x (+ x 1))
  15. (when (> x 360) (return x))
  16. )
Спасибо.

Решение задачи: «График функции y = sin x / cos x»

textual
Листинг программы
  1. (defun grafik (f a b)
  2.   (let* ((w (gensym 'w))
  3.          (ymax (funcall f a))
  4.          (ymin (funcall f b))
  5.          (y 0)  
  6.          (xl 0)
  7.          (yl 0)  
  8.          (dx (/ (- b a) 200.0)))
  9.     (grwCreate w 300 300 "График" _WHITE)
  10.     (grwSetParm w 3 0 _RED)
  11.     (grwShow w)
  12.     (iter (for x from a to b by dx)
  13.        (setf y (funcall f x))
  14.        (when (> y ymax) (setf ymax y))
  15.        (when (< y ymin) (setf ymin y)))
  16.     (setf ymax (+ ymax (* 0.1 (- ymax ymin))))
  17.     (setf ymin (- ymin (* 0.1 (- ymax ymin))))
  18.     (grwScale w a b ymin ymax)
  19.     (setq xl a yl (funcall f a))
  20.     (iter (for x from (+ dx a) to b by dx)
  21.           (setq y (funcall f x))
  22.           (grwLine w xl yl x y _RED)
  23.           (setq xl x yl y))))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы