Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба_3.rtf
Скачиваний:
28
Добавлен:
27.03.2015
Размер:
127.32 Кб
Скачать

Задание 2.

Разберите представленную программу для службы знакомств. Она содержит внутреннюю цель для выбора Кати партнера высокого роста, блондина, имеющего спортивный автомобиль. Наберите программу и внесите в нее изменения с учетом ваших вкусов для всех возможных ваpиантов выбоpа партнера. Переделайте программу для поиска партнерши для мужчины.

/* Программа "Служба знакомств"*/

/* Работа с правилами. Цель внутренняя/внешняя.*/

/* Связки: ":-" и ",". Секция domains.*/

domains

man = symbol

predicates

choice(man) /* выбор */

short(man /* short-низкий, tall-высокий */

tall(man)

black(man) /* black-брюнет, blond-блондин */

blond(man)

old(man) /* old-старое, sport-спортивное авто */

sport(man)

katry(man) /* выбор Кати */

who_is_the_choice /* Имя предиката из нескольких слов.*/

/* Пробелы заменяются символами связки "_". */

clauses

/* факты */

choice("Костя"). /* Обратите внимание, что предикаты */

choice("Леонид"). /* одного типа (с одним именем и */

choice("Павел"). /* одинаковой арности) записываются */

short("Леонид"). /* в программе всегда в одной группе*/

short("Павел").

tall("Костя").

black("Павел").

black("Леонид").

blond("Костя").

old("Леонид").

old("Павел").

sport("Костя").

/* правила */

who_is_the_choice :-

katry(Choice),

write("Кандидат для Кати - ",Choice,"."),nl.

katry(Choice) :-

choice(Choice),

tall(Choice),

blond(Choice),

sport(Choice).

goal

who_is_the_choice.

Задание 3. Создайте программу, описывающую Ваши родственные отношения, используя фрагмент программы приведенный ниже. Перед написанием программы нарисуйте дерево родственных отношений своей семьи и пользуйтесь им для записи фактов в программу. Поработайте с программой и определите родственные отношения в семье в соответствии с индивидуальным заданием.

predicates

male (symbol) /* мужчина */

female (symbol) /* женщина*/

father(symbol, symbol) /* отец */

mother (symbol,symbol) /* мать */

parent (symbol,symbol) /* родитель */

syster (symbol,symbol) /* сестра */

brother (symbol,symbol) /* брат */

gra ndfather (symbol,symbol) /* дедушка */

grandmother (symbol,symbol) /* бабушка */

clauses

/* факты */

male("Алексей"). /* мужчины */

female("Лена"). /* женщины */

mother("Ольга","Лена"). /* ребенок-мать */

father("Алексей","Борис"). /* ребенок-отец */

/* правила */

parent(X,Y) if mother(X,Y). /* Y-родитель X, если она мать X */

parent(X,Y) if father(X,Y). /* Y-родитель X, если он отец X */

brother(X,Y) if /* Y бpат X, если Y-мужчина, у них */

male(Y) and /* общий родитель и они не одно лицо. */

parent(X,P) and

parent(Y,P) and

X<>Y.

grandfather(X,G) if /* G-дедушка X, если он-отец матери X.*/

father(P,G) and

mother(X,P).

grandmother(X,B) if /* B-бабушка X, если она-мама матери X.*/

mother(X,A) and

mother(A,B).

goal

write("Ребенок: "),male(Z),write(Z),nl,

write("Мама ",Z," -это "),nl,mother(Z,X),write(X),nl,

write("Бабушка ",Z," - это "),nl,grandmother(Z,B),write(B),nl.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]