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

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

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

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

Задание:

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

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

textual
Листинг программы
  1. (defun task ()
  2.   (let* ((tf (str2fix (ask "Что рисуем? (1-эллипс, 2-круг, 3-дугу)")))
  3.          (cl (str2fix (ask "Цвет? (1-красный, 2-синий, 3-зеленый)")))
  4.          (col (cond ((= cl 1) _RED)
  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))
  12.          ((= tf 2) (grwCircle  w 0 0 60 col))
  13.          (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

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

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

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