Найти количество элементов списка, меньших своего номера - Prolog

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

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

найти количество элементов меньше своего номера. Плиз.не могу разобраться,вот что у меня есть,помогите,очень срочно нужно)))

Решение задачи: «Найти количество элементов списка, меньших своего номера»

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
counter(intl,int,int)
task(intl,int)
 
clauses
counter([],_,0).
counter([H|T],Z,R) :- H>=Z, Z1=Z+1, counter(T,Z1,R).
counter([H|T],Z,R) :- H<Z, Z1=Z+1, counter(T,Z1,R1),R=R1+1.
 
task(X,N) :- counter(X,1,N).

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

  1. В коде дано два домена: int (целое число) и intl (массив целых чисел).
  2. Также в коде определены две предикаты: counter (счетчик) и task (задача).
  3. Условие задачи: необходимо найти количество элементов списка, меньших своего номера.
  4. В первом правиле (clause) для пустого списка ([]) счетчик равен 0.
  5. Во втором правиле (clause) для списка с элементом H (H>=Z) счетчик равен Z1=Z+1 и рекурсивно вызывается функция counter для списка T и нового значения Z1.
  6. В третьем правиле (clause) для списка с элементом H (H<Z) счетчик равен R1=R+1 и рекурсивно вызывается функция counter для списка T и нового значения Z1.
  7. В функции task(X,N) используется счетчик counter для подсчета количества элементов списка X, меньших значения N.

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


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

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

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