Функция для вычисления значения полинома - Lisp

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

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

Здравствуйте! Помогите с задачей, пожалуйста: Написать функцию для вычисления значения полинома для заданного аргумента по схеме Горнера. Коэффициенты полинома заданы в виде списка или одномерного массива. Предусмотреть проверку корректности данных.

Решение задачи: «Функция для вычисления значения полинома»

textual
Листинг программы
  1. (defun task (coeff arg)
  2.   (try
  3.        (poly-val coeff arg)
  4.    except
  5.        (errormessage)))
  6.  
  7. ==> TASK
  8.  
  9. (task '(1 2 3) 7)
  10.  
  11. ==> 66
  12.  
  13. (task '(1 a 3) 7)
  14.  
  15. ==> "PLUS: Один из аргументов (A) имеет нечисловой тип"

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

В коде определена функция с именем task. Она принимает два аргумента: coeff и arg. Первый аргумент представляет собой список коэффициентов полинома, а второй — значение переменной, которое нужно подставить в полином. Внутри функции происходит следующее:

  1. Вычисляется значение полинома с помощью функции poly-val, в которую передаются аргументы coeff и arg.
  2. Если что-то пошло не так (то есть значение полинома не вычислилось), то выводится сообщение об ошибке с помощью функции errormessage. При вызове функции task со списком коэффициентов '(1 2 3) и аргументом 7, результатом будет число 66. Это результат вычисления полинома 1 + 27 + 37^2 = 66. При вызове функции task со списком коэффициентов '(1 a 3) и аргументом 7, результатом будет сообщение об ошибке PLUS: Один из аргументов (A) имеет нечисловой тип. Это происходит потому, что функция poly-val ожидает числовые значения для вычисления полинома, а аргумент 'a не является числом.

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


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

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

14   голосов , оценка 4.143 из 5

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

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

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