Количество элементов списка с исключением заданного числа - Prolog

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

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

Даны число и список чисел. Подсчитать количество элементов в этом списке без указанного числа и вывести полученное значение. Например: если дано "4 [5 3 6 4 9 1 4 2 7 8 0 5 4]", ответом будет "10".

Решение задачи: «Количество элементов списка с исключением заданного числа»

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
task(intl,int,int)
 
clauses
task([],_,0).
task([H|T],H,N) :- task(T,H,N).
task([Q|T],H,N) :- Q <> H, task(T,H,N1),N=N1+1.
 
goal
task([5,3,6,4,9,1,4,2,7,8,0,5,4],4,N),write(N),nl.

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

В этом коде задача состоит в подсчете количества элементов списка, которые не равны заданному числу. В первой строке объявлены два множества: int — для целочисленных значений, и intl — для указателей на целочисленные значения (то есть, int*). Затем определена цель (predicate) task, которая принимает три аргумента: список, текущий элемент и счетчик. В первой clause задачи (это специальное слово, которое определяет правило или условие) указывается базовый случай: если список пуст, то счетчик равен 0. Вторая clause задачи определяет общее правило: если текущий элемент не равен следующему элементу в списке (то есть, если Q <> H), то счетчик увеличивается на единицу, и задача рекурсивно вызывается для оставшейся части списка. В конце кода задается цель, которая вызывает функцию task с заданным списком, числом и пустым списком. Результат подсчета выводится на экран.

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


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

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

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