Рекурсивное вычисление в Прологе - 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).
Объяснение кода листинга программы
y(N, X)
- внешний вид целиy(N, 1, X)
- рекурсивный вызов цели с аргументами(N, 1, X)
y(N, K, 0)
- базовый случай, когдаK
большеN
, то есть уравнение не имеет корняKK is K + 1
- присваивание переменнойKK
значениеK + 1
y(N, KK, XX)
- рекурсивный вызов цели с аргументами(N, KK, XX)
X is sqrt(K + XX)
- вычисление значенияX
как квадратного корня из суммыK
иXX
sqrt(K + XX)
- вычисление квадратного корня от суммыK
иXX
с помощью встроенного математического оператораsqrt
K > N
- базовый случай, когдаK
большеN
, то есть уравнение не имеет корня!
- знак прекращения поиска (операторcut
)KK is K + 1
- присваивание переменнойKK
значениеK + 1
y(N, KK, XX)
- рекурсивный вызов цели с аргументами(N, KK, XX)
X is sqrt(K + XX)
- вычисление значенияX
как квадратного корня из суммыK
иXX
sqrt(K + XX)
- вычисление квадратного корня от суммыK
иXX
с помощью встроенного математического оператораsqrt
K > N
- базовый случай, когдаK
большеN
, то есть уравнение не имеет корня!
- знак прекращения поиска (операторcut
)KK is K + 1
- присваивание переменнойKK
значениеK + 1
y(N, KK, XX)
- рекурсивный вызов цели с аргументами(N, KK, XX)
X is sqrt(K + XX)
- вычисление значенияX
как квадратного корня из суммыK
иXX
sqrt(K + XX)
- вычисление квадратного корня от суммыK
иXX
с помощью встроенного математического оператораsqrt
K > N
- базовый случай, когдаK
большеN
, то есть уравнение не имеет корня!
- знак прекращения поиска (операторcut
)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д