[Turbo Prolog] Заполнение списка пятью элементами по формуле A(N)=1/N

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

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

Добрый вечер. Суть задачи: Составьте программу заполнения списка пятью элементами, которые вычисляются по формуле A(N)=1/N. Есть код программы:
Программа считает неправильно в функции calc, не могу никак понять как уменьшать H для следующего деления. Подскажи, пожалуйста, как подправить. Спасибо.
немного поправил подскажите, пожалуйста, как избежать деления на 0?

Решение задачи: «[Turbo Prolog] Заполнение списка пятью элементами по формуле A(N)=1/N»

textual
Листинг программы
domains
rl=real*
int=integer
 
predicates
mklist(int,int,rl)
task(int,rl)
 
clauses
mklist(N,N,[Q]) :- Q=1/N, !.
mklist(N,M,[H|T]) :- M1=M+1, H=1.0/M, mklist(N,M1,T).
 
task(N,R) :- mklist(N,1,R).

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

  1. В данном коде используется язык программирования Prolog.
  2. Код содержит два домена: rl (реальные числа) и int (целые числа).
  3. У него есть две предположительные функции: mklist и task.
  4. Функция mklist принимает три аргумента: N (размер списка), M (номер элемента, который обрабатывается в рекурсии) и R (результат).
  5. Есть два случая в функции mklist:
    • Если N равно M, то возвращается Q, равное 1/N.
    • Если N больше M, то H (значение элемента) равно 1.0/M, а затем вызывается функция mklist с новыми значениями N и M1 (M+1).
  6. Функция task принимает два аргумента: N (размер списка) и R (результат).
  7. В функции task вызывается функция mklist с аргументами N и 1 (начальный размер списка).
  8. Результатом работы программы будет список из пяти элементов, где каждый элемент будет равен 1.0/N.

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


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

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

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