Найти корень числа с точностью до сотых - Lisp

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

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

Помогите пожалуйста, нужно найти корень целочисленного числа с точностью до 2го знака после запятой.

Решение задачи: «Найти корень числа с точностью до сотых»

textual
Листинг программы
(defun newton (x &optional (e 0.001) (z 1))
  (if (> (abs (- x (* z z))) e)
      (newton x e (* (+ z (/ x z)) 0.5))
      (format z "0.00")))
 
==> newton
 
(newton 2)
 
==> "1.41"

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

В данном коде представлен алгоритм вычисления корня числа с помощью функции newton. Алгоритм имеет следующие шаги:

  1. Начало функции — начало выполнения функции.
  2. Проверка условия — проверка условия завершения работы функции: если абсолютное значение разности текущего значения x и произведения текущего значения z на себя больше заданной точности e, то функция завершается.
  3. Вызов функции newton — рекурсивный вызов функции newton с текущими значениями x и e, а также с новым значением z, равным половине от старого значения z.
  4. Форматирование значения z — форматирование значения z в виде строки с плавающей точкой до двух знаков после запятой.
  5. Конец функции — окончание выполнения функции. При вызове функции newton с аргументом 2, происходит следующее:
  6. Значение x устанавливается равным 2.
  7. Значение e устанавливается равным 0.001.
  8. Значение z устанавливается равным 1.
  9. Условие проверки (> (abs (- x ( z z))) e) становится истинным, так как (abs (- x ( z z))) равно 2.002, что больше 0.001.
  10. Выполняется рекурсивный вызов функции newton с аргументами (2, 0.001, (* (+ z (/ x z)) 0.5)).
  11. Значение z заменяется на результат рекурсивного вызова функции newton, равный 1.41.
  12. Форматирование значения z в виде строки 1.41.
  13. Возврат значения 1.41 в качестве результата выполнения функции. Таким образом, результатом выполнения функции newton с аргументом 2 будет строка 1.41.

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


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

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

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