Выяснить, есть ли в слове Х и У одинаковые символы - Prolog

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

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

Составьте программу выясняющую есть ли в слове Х и У одинаковые символы

Решение задачи: «Выяснить, есть ли в слове Х и У одинаковые символы»

textual
Листинг программы
domains
str=string
 
predicates
isIn(char,str)
task(str,str)
 
clauses
isIn(_,"") :- fail.
isIn(C,Q) :- frontchar(Q,C,_).
isIn(C,Q) :- frontchar(Q,Z,T), C<>Z, isIn(C,T).
 
task("",_) :- fail.
task(X,Y)  :- frontchar(X,A,_), isIn(A,Y).
task(X,Y)  :- frontchar(X,A,R), not(isIn(A,Y)), task(R,Y).

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

  1. В коде используется логический язык программирования Prolog.
  2. В первой строке объявлено множество символов, которые могут быть использованы в словах - str=string.
  3. Далее идут определения двух предикатов - isIn и task.
  4. Предикат isIn проверяет наличие символа в строке.
  5. Предикат task выполняет задачу сравнения двух строк.
  6. В первой группе правил для предиката isIn проверяется пустая строка, и если она пустая, то выполняется действие fail.
  7. Во второй группе правил для предиката isIn идет проверка на наличие символа в строке, используя функцию frontchar.
  8. В третьей группе правил для предиката isIn идет проверка на различие символов и рекурсивный вызов функции isIn.
  9. В первой группе правил для предиката task проверяется пустая строка, и если она пустая, то выполняется действие fail.
  10. Во второй группе правил для предиката task идет проверка на наличие символа в первой строке, используя функцию frontchar, и если символ найден, то выполняется рекурсивный вызов функции task для оставшейся части строк.
  11. В третьей группе правил для предиката task идет проверка на отсутствие символа в первой строке, используя отрицание not, и если символ отсутствует, то выполняется рекурсивный вызов функции task для оставшейся части строк.

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


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

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

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