Вывод изображения фигур - Lisp

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

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

Здравствуйте,помогите с заданием)

Задание:

Написать функцию, которая спрашивает у пользователя какую фигуру нужно нарисовать: 1- эллипс, 2 - круг, 3 - дугу и какого цвета и выводит на экран соответствующую фигуру

Решение задачи: «Вывод изображения фигур»

textual
Листинг программы
(defun task ()
  (let* ((tf (str2fix (ask "Что рисуем? (1-эллипс, 2-круг, 3-дугу)")))
         (cl (str2fix (ask "Цвет? (1-красный, 2-синий, 3-зеленый)")))
         (col (cond ((= cl 1) _RED)
                    ((= cl 2) _BLUE)
                    (t _GREEN)))
         (w (gensym 'w)))
   (grwCreate w 200 200 "Фигуры" _WHITE)
   (grwScale w -100 100 -100 100)
   (grwShow w)
   (cond ((= tf 1) (grwEllipse w 0 0 60 col 0.7))
         ((= tf 2) (grwCircle  w 0 0 60 col))
         (t        (grwArc     w 0 0 60 0 (* 0.5 _pi) col)))))

Объяснение кода листинга программы

В коде определен функции task, которая запрашивает у пользователя информацию о фигуре и цвете, а затем создает окно с фигурой указанного типа и цвета:

  1. (defun task () — определение функции task.
  2. (let* ((tf (str2fix (askЧто рисуем? (1-эллипс, 2-круг, 3-дугу)`))) — запрос информации о фигуре.
  3. (cl (str2fix (askЦвет? (1-красный, 2-синий, 3-зеленый)`))) — запрос информации о цвете.
  4. (col (cond ((= cl 1) _RED) — определение цвета фигуры в зависимости от значения переменнойcl`.
  5. (         ((= cl 2) _BLUE) —
  6. (         (t _GREEN))) —
  7. `(w (gensym 'w))) — создание уникального идентификатора для окна фигуры.
  8. (grwCreate w 200 200Фигуры` _WHITE) — создание окна с указанными размерами и названием.
  9. `(grwScale w -100 100 -100 100) — изменение размеров окна.
  10. `(grwShow w) — отображение окна.
  11. (cond ((= tf 1) (grwEllipse w 0 0 60 col 0.7)) — проверка значения переменнойtf` и отображение соответствующей фигуры.
  12. (     ((= tf 2) (grwCircle  w 0 0 60 col)) —
  13. (     (t        (grwArc     w 0 0 60 0 (* 0.5 _pi) col))))) —

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


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

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

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