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

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

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

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

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

textual
Листинг программы
  1. domains
  2. str=string
  3.  
  4. predicates
  5. isIn(char,str)
  6. task(str,str)
  7.  
  8. clauses
  9. isIn(_,"") :- fail.
  10. isIn(C,Q) :- frontchar(Q,C,_).
  11. isIn(C,Q) :- frontchar(Q,Z,T), C<>Z, isIn(C,T).
  12.  
  13. task("",_) :- fail.
  14. task(X,Y)  :- frontchar(X,A,_), isIn(A,Y).
  15. 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

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

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

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