Решение квадратного уравнения - Lisp

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

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

Буду очень благодарна и признательна если кто в этом разбирается и поможет. Необходимо на Лиспе написать программу вычисления дискриминанта квадратного уравнения. Свои наброски есть, но не уверена что правильно сделала.

Решение задачи: «Решение квадратного уравнения»

textual
Листинг программы
(defun qudrat(a b c)
  (let ((D (- (* b b) (* a c 4))))
    (cond ((minusp D) '())
          ((zerop D) (list (/ ( - b) (* 2 a))))
          (t (list (/ (- (* b -1) (sqrt D)) (* 2 a))
                   (/ (+ (* b -1) (sqrt D)) (* 2 a))))))))

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

В данном коде реализуется функция qudrat, которая решает квадратное уравнение вида ax^2 + bx + c = 0. Список действий, которые выполняются в коде:

  1. Вычисление дискриминанта D по формуле D = b^2 - 4ac.
  2. Проверка значения дискриминанта D:
    • Если D меньше нуля, то уравнение не имеет решений и функция возвращает пустой список.
    • Если D равно нулю, то уравнение имеет одно решение и функция возвращает список, содержащий это решение, вычисленное по формуле x = -b/2a.
    • Если D больше нуля, то уравнение имеет два решения и функция возвращает список, содержащий эти два решения, вычисленные по формуле x = (-b ± sqrt(D))/2a.

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

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