Предикат 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 и выводит результат на экран. В коде присутствуют четыре функции:

  1. insum(N, I, J, S) - вычисляет сумму от I до J с шагом S и выводит результат на экран.
  2. outsum(N, I, S) - вычисляет сумму от I до N с шагом S и выводит результат на экран.
  3. task(N, R) - вызывает функцию outsum(N, 1, R), вычисляет и выводит результат на экран.
  4. main - точка входа в программу, вызывает функцию task(5, R), вычисляет и выводит результат на экран. Список вызовов функций в порядке их использования в коде:
  5. insum(N, _, J, 0)
  6. insum(N, I, J, S)
  7. outsum(N, I, S)
  8. outsum(N, I, 0)
  9. task(N, R)
  10. main

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


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

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

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