Рекурсивное вычисление в Прологе - Prolog

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

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

ребята а не кто не сможет помочь с такой вот штукой) для swi prolog Создать программу расчета функции. Программа должна запрашивать у пользователя: - N - количество членов ряда, - Х - значение переменной (если в формуле есть Х). Результат работы: - приближенное значение функции, - точное значение функции.

Решение задачи: «Рекурсивное вычисление в Прологе»

textual
Листинг программы
y(N, X) :-
    y(N, 1, X).
y(N, K, 0) :-
    K > N,
    !.
y(N, K, X) :-
    KK is K + 1,
    y(N, KK, XX),
    X is sqrt(K + XX).

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

  1. y(N, X) - внешний вид цели
  2. y(N, 1, X) - рекурсивный вызов цели с аргументами (N, 1, X)
  3. y(N, K, 0) - базовый случай, когда K больше N, то есть уравнение не имеет корня
  4. KK is K + 1 - присваивание переменной KK значение K + 1
  5. y(N, KK, XX) - рекурсивный вызов цели с аргументами (N, KK, XX)
  6. X is sqrt(K + XX) - вычисление значения X как квадратного корня из суммы K и XX
  7. sqrt(K + XX) - вычисление квадратного корня от суммы K и XX с помощью встроенного математического оператора sqrt
  8. K > N - базовый случай, когда K больше N, то есть уравнение не имеет корня
  9. ! - знак прекращения поиска (оператор cut)
  10. KK is K + 1 - присваивание переменной KK значение K + 1
  11. y(N, KK, XX) - рекурсивный вызов цели с аргументами (N, KK, XX)
  12. X is sqrt(K + XX) - вычисление значения X как квадратного корня из суммы K и XX
  13. sqrt(K + XX) - вычисление квадратного корня от суммы K и XX с помощью встроенного математического оператора sqrt
  14. K > N - базовый случай, когда K больше N, то есть уравнение не имеет корня
  15. ! - знак прекращения поиска (оператор cut)
  16. KK is K + 1 - присваивание переменной KK значение K + 1
  17. y(N, KK, XX) - рекурсивный вызов цели с аргументами (N, KK, XX)
  18. X is sqrt(K + XX) - вычисление значения X как квадратного корня из суммы K и XX
  19. sqrt(K + XX) - вычисление квадратного корня от суммы K и XX с помощью встроенного математического оператора sqrt
  20. K > N - базовый случай, когда K больше N, то есть уравнение не имеет корня
  21. ! - знак прекращения поиска (оператор cut)

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


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

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

15   голосов , оценка 4.067 из 5