Реализовать двойное условие в cond - Lisp
Формулировка задачи:
Здравствуйте.
Помогите реализовать двойное условие в cond.
Условие
-1<=p<=2
+ я не знаю , правильно ли я реализовал функции.
Моя задача:
r=Sin (p+p/3-p3) , p<-1
r=Lg (1-p/5+sin p) , -1<=p<=2
r=1+p^2 , p>2
Вот мой код
Листинг программы
- (setq p -2)
- (cond
- ((< p -1)
- (setq r (sin (-(+ p (/ p 3 )) (* (* p p) p)))))
- ((= p 1)
- (setq r (lg (+(- 1 (/ p 5 )) (sin p)))))
- ((> p 2)
- (setq r (+ 1 (* p p))))
- (T 'pomilka)
- )
- (print r)
Решение задачи: «Реализовать двойное условие в cond»
textual
Листинг программы
- (defun task (p)
- (cond ((< p -1) (sin (+ p (/ p 3) (- (* p p p)))))
- ((and (<= p 2) (>= p -1)) (log (+ 1 (/ p -5) (sin p))))
- (t (+ 1 (* p p)))))
Объяснение кода листинга программы
В коде определена функция с именем task, которая принимает один аргумент p. Внутри функции используется конструкция cond, которая позволяет проверить три различных условия и выполнить соответствующее действие для каждого из них.
- (defun task (p)
- (cond ((< p -1) (sin (+ p (/ p 3) (- (* p p p))))) Здесь первое условие: p меньше -1. Если это условие истинно, то выполняется действие, которое заключается в вычислении значения функции sin от выражения, которое является результатом сложения p, деления p на 3 и вычитания значения функции sin от p, умноженного на p.
- ((and (<= p 2) (>= p -1)) (log (+ 1 (/ p -5) (sin p)))) Здесь второе условие: и p меньше или равно 2, и p больше или равно -1. Если это условие истинно, то выполняется действие, которое заключается в вычислении значения функции log от выражения, которое является результатом сложения 1, деления p на -5 и вычитания значения функции sin от p.
- (t (+ 1 (* p p)))))
Здесь третье условие: истинно любое другое значение, кроме предыдущих двух. Если это условие истинно, то выполняется действие, которое заключается в выполнении выражения, которое является результатом сложения 1 и значения функции sin от p, умноженного на p.
Для лучшего понимания кода можно использовать следующие переменные:
p — аргумент функции task;
1n — натуральный логарифм;
sin — синус;
/ — деление;
- — умножение;
- — сложение;
- — вычитание.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д