Напишите программу на SWISH PROLOG

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

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

Министры иностранных дел России, США и Китая обсудили за закрытыми дверями проекты соглашения о полном разоружении, представленные каждой из стран. Отвечая затем на вопрос журналистов: "Чей именно проект был принят?", министры дали такие ответы: Россия — "Проект не наш, проект не США"; США — "Проект не России, проект Китая"; Китай — "Проект не наш, проект России". Один из них (самый откровенный) оба раза говорил правду; второй (самый скрытный) оба раза говорил неправду, третий (осторожный) один раз сказал правду, а другой раз — неправду. Напишите на языке SWI Prolog программу решающую, представителями каких стран являются откровенный, скрытный и осторожный министры.

. Требуется помощь так ,как я не понимаю в прологе ничего(((.

Решение задачи: «Напишите программу на SWISH PROLOG»

textual
Листинг программы
%%  not(:Goal) is semidet.
%
%   Pre-ISO version of \+/1. Note that  some systems define not/1 as
%   a logically more sound version of \+/1.
 
not(Goal) :-
    \+ Goal.

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

  1. Задача кода - написать программу на SWISH PROLOG для логического вывода.
  2. Программа начинается с директивы %% not(:Goal) is semidet.
  3. Эта директива определяет, что не существует фиксированного способа достичь цели :Goal.
  4. Следующая строка % Pre-ISO version of +/1.
  5. В ней говорится, что некоторые системы определяют not/1 как более логичную версию +/1.
  6. Далее идет определение not(Goal) :- + Goal.
  7. В этом определении not(Goal) является целью, а + Goal - способом ее достижения.
  8. В итоге, если цель Goal не может быть достигнута, то не(Goal) будет истинным.

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

14   голосов , оценка 4.429 из 5