Нахождение произведения чётных элементов числового списка - Prolog

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

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

Нахождение произведения чётных элементов числового списка

Решение задачи: «Нахождение произведения чётных элементов числового списка»

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
task(intl,int)
 
clauses
task([],1).
task([H|T],P) :- H mod 2 = 0, task(T,P1), P=P1*H.
task([H|T],P) :- H mod 2 <> 0, task(T,P).

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

Код на языке Prolog решает задачу поиска произведения чётных элементов в числовом списке. В коде определены два домена:

  1. int — целочисленный тип для представления чисел
  2. intl — список целых чисел (int*) для представления числового списка Также определена одна цель — task, которая принимает два аргумента: intl (числовой список) и int (произведение чётных элементов). В коде есть два правила для обработки двух возможных случаев:
  3. Если числовой список пустой ([]), то задача решена и результатом будет 1.
  4. Если числовой список не пустой, то есть хотя бы один элемент, то код проверяет, является ли первый элемент списка чётным (H mod 2 = 0). Если это так, то код рекурсивно вызывает себя для оставшейся части списка и умножает произведение на текущий элемент (P=P1*H). Если первый элемент нечётный, то код просто переходит к следующему элементу списка без изменения значения произведения (P=P). Таким образом, код проходит по всем элементам числового списка, проверяет их чётность и умножает произведение на каждый чётный элемент. В результате получается произведение всех чётных элементов в списке.

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

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