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

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

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

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

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

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

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

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

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