Предикат y(N), выводящий на экран результат выражения для заданного N - Prolog
Формулировка задачи:
Предикат y(N), выводящий на экран результат выражения для заданного N Вот код. В чем ошибка? подскажите пожалуйста.
Решение задачи: «Предикат y(N), выводящий на экран результат выражения для заданного N»
textual
Листинг программы
% insum(N, I, J, S) insum(N, _, J, 0) :- J > N, !. insum(N, I, J, S) :- JNext is J+1, insum(N, I, JNext, SNext), S is log(I)/log(J)+SNext. % outsum(N, I, S) outsum(N, I, 0) :- I > N, !. outsum(N, I, S) :- INext is I+1, outsum(N, INext, SNext), insum(N, I, 2, SI), S is SI + SNext. task(N, R) :- outsum(N, 1, R), write(R). ?- task(5, R).
Объяснение кода листинга программы
Код решает задачу вычисления суммы чисел от 1 до N и выводит результат на экран. В коде присутствуют четыре функции:
- insum(N, I, J, S) - вычисляет сумму от I до J с шагом S и выводит результат на экран.
- outsum(N, I, S) - вычисляет сумму от I до N с шагом S и выводит результат на экран.
- task(N, R) - вызывает функцию outsum(N, 1, R), вычисляет и выводит результат на экран.
- main - точка входа в программу, вызывает функцию task(5, R), вычисляет и выводит результат на экран. Список вызовов функций в порядке их использования в коде:
- insum(N, _, J, 0)
- insum(N, I, J, S)
- outsum(N, I, S)
- outsum(N, I, 0)
- task(N, R)
- main
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д