Предикаты - Prolog (226317)

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

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

Написать предикат, который для заданного числа и заданного числового списка, возвращает новый список, записывая новый элемент в список перед числом 5. если в списке не содержится число 5, тогда список возвращается без изменений. написать программу на прологе полностью.

Решение задачи: «Предикаты»

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

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

  1. В коде дано описание домена и предиката.
  2. Домен int представляет собой целочисленные значения, а intl — это список целочисленных значений.
  3. Предикат task принимает три аргумента: intl, int и intl.
  4. В первой клаузе task([],_,[]) не указывается значение первого аргумента, а остальные два аргумента используются для вывода.
  5. Во второй клаузе task([5|T],N,[N,5|R]) при наличии элемента 5 в списке T, задача рекурсивно вызывается для списка T и аргументов N и R.
  6. В третьей клаузе task([H|T],N,[H|R]) при наличии элемента H, который не равен 5, задача рекурсивно вызывается для списка T и аргументов N и R.

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


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

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

10   голосов , оценка 3.6 из 5

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

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

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