Помогите сформировать список произведений (подробности в задании) - Prolog

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

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

Сформировать список L1 из произведений всех отрицательных элементов списка L, из произведений отрицательных элементов последних n-1 элементов списка L1, и тд.

Решение задачи: «Помогите сформировать список произведений (подробности в задании)»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. prod_neg(intl,int)
  7. task(intl,intl)
  8.  
  9. clauses
  10. prod_neg([],1).
  11. prod_neg([H|T],R) :- H<0, prod_neg(T,R1), R=R1*H.
  12. prod_neg([H|T],R) :- H>=0, prod_neg(T,R).
  13.  
  14. task([],[]).
  15. task([H|T],[R|TT]) :- prod_neg([H|T],R), task(T,TT).

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

  1. В данном коде используется язык программирования Prolog.
  2. Код содержит два домена: int (целое число) и intl (целое число, управляющее потоком).
  3. Есть два предиката: prod_neg и task.
  4. Предикат prod_neg используется для вычисления отрицательного произведения чисел. Он принимает два аргумента: intl (список целых чисел) и int (целое число). Если список пустой, то результат равен 1. Если первый элемент списка отрицательный, то результат равен произведению последнего элемента списка и этого отрицательного числа. Если первый элемент списка положительный или ноль, то результат равен результату вызова этого предиката для оставшегося списка и int.
  5. Предикат task используется для решения задачи. Он принимает два аргумента: intl (список целых чисел) и intl (список целых чисел). Если первый список пустой, то результат пустой список. Если первый элемент списка положительный или ноль, то результат - это результат вызова предиката prod_neg для оставшегося списка и int, добавленный к результату вызова предиката task для оставшегося списка и int.
  6. Код решает задачу формирования списка произведений чисел.

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


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

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

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы