Программирование на Турбо-Прологе


Программирование на Турбо-Прологе - стр. 5


     /* условие того, что три следующих друг за другом дуги образуют  треугольник */
        tr(X,Y,Z):-arc_(X,Y),arc_(Y,Z),arc_(Z,X).
     После запуска  программы  на выполнение в окне Dialog экрана появится строка Goal:.  Введем, например line(X,Y). В результате получим: X=b,Y=c,X=c,Y=b 2 Solutions,  т.е.  найдено два решения.  Точно так же можно ставить вопросы для отношений arc_ и tr.  Например, если ввести: arc_(a,b),  результатом будет false (ложь),  а если ввести arc(a,f), -
true ( истина ).  На вопрос arc_(F,c) Пролог выдаст два решения: F=a и F=b.
        Пример 3.Отношение "нравится"
predicates
   likes(symbol,symbol)
clauses
   likes(ellen, tennis).   /* Эллен нравится теннис */
   likes(john, football).    likes(tom, baseball).    likes(eric, swimming).
   likes(mark, tennis).
    /* Биллу нравится то же, что и Тому */
   likes(bill, Activity) if likes(tom, Activity).
    Пример 4. Отношение «может купить»
 
predicates
   can_buy(symbol, symbol)  /* отношение "может купить" */
   person(symbol)           /* отношение "субъект */
   car(symbol)             /* отношение "марка автомобиля" */
   likes(symbol, symbol)
   for_sale(symbol)       /* отношение "продается" */
clauses
   can_buy(X, Y) :-         person(X), car(Y), likes(X, Y),         for_sale(Y).
   person(kelly). person(judy).
   car(lemon). car(hot_rod).
   likes(kelly, hot_rod). likes(judy, pizza).
   for_sale(pizza). for_sale(lemon). for_sale(hot_rod).
1.4.Варианты заданий
     1.Родственные отношения.
     Кроме родственных отношений parent (родитель) и ancestor (предок) программа должна содержать хотя бы одно из следующих отношений:
     1.1. brother (брат);
     1.2. sister  (сестра);
     1.3. grand-father (дедушка);
     1.4. grand-mother (бабушка);
     1.5. uncle (дядя);
     2.Ориентированные графы.
     Описать граф.  Задать отношения, позволяющие определить наличие в графе:



- Начало -  - Назад -  - Вперед -