Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PROLOG_Labs / Лабораторная работа 2.doc
Скачиваний:
113
Добавлен:
20.03.2015
Размер:
142.34 Кб
Скачать

5. Пример программирования простых баз данных с использованием правил

Условие:

Наименование предметной области:

«Подбор партнера»

Количество объектов:

7

Количество учитываемых параметров:

3

В качестве объектов выберем следующие мужские имена: Bill, Jim, Mark, Robert, Willy, Tom, Frank, а в качестве учитываемых параметров: рост, цвет волос и класс машины.

Решение:

/٭ Программа “Подбор партнера” ٭/

domains

man = symbol

predicates

choice(man)

short_height(man) /٭ мужчина низкого роста ٭/

medium_height(man) /٭ мужчина среднего роста ٭/

tall_height(man) /٭ мужчина высокого роста ٭/

black_hair(man) /٭ брюнет ٭/

brown_hair(man) /٭ шатен ٭/

blond_hair(man) /٭ блондин ٭/

old_car(man) /٭ владелец старого автомобиля ٭/

new_car(man) /٭ владелец нового автомобиля ٭/

sports_car(man) /٭ владелец спортивного автомобиля ٭/

Kathy_choice(man)

who_is_the_choice

goal

who_is_the_choice.

clauses

choice(bill).

choice(jim).

choice(mark).

choice(robert).

choice(willy).

choice(tom).

choice(frank).

short_height(bill).

short_height(tom).

medium_height(willy).

medium_height(mark).

medium_height(jim).

tall_height(robert).

tall_height(frank).

black_hair(bill).

black_hair(willy).

brown_hair(jim).

brown_hair(tom).

blond_hair(mark).

blond_hair(robert).

blond_hair(frank).

old_car(mark).

new_car(tom).

sports_car(jim).

sports_car(robert).

who_is_the_choice:–

Kathy_choice(Choice),

Write(“Kathy choice is”, Choice, “.”),

nl.

Kathy_choice(Choice):–

choice(Choice),

tall_height(Choice),

blond_hair(Choice),

sports_car(Choice).

/٭٭ Конец программы ٭٭/

В разделе clauses 7 утверждений предиката сhoice содержат имена bill, jim, mark, robert, willy, tom и frank. Утверждения с предикатами short_height, medium_height, tall_height, black_hair, brown_hair, blond_hair, new_car, old_car и sports_car также содержат эти мужские имена. Целью программы является отыскание мужчины, соответствующего вкусам некой Kathy: высокого роста, блондина, обладателя спортивного автомобиля. В случае обнаружения мужчины, обладающего перечисленными свойствами, программа должна напечатать его имя.

Практическое задание

1. Описать БЗ «Библиотека», содержащую факты:

  • О читателях – студентах:

Фамилия

Курс

Фамилия

Курс

Иванов

2

Анисимов

3

Петров

2

Тихонов

3

Сидоров

2

Травкин

3

Ковалёв

2

Жданов

4

Антонов

3

Галкин

4

  • О книгах, невозвращённых читателями в срок

Название книги

Номер книги

Год издания

Фамилия студента

Физика

1001

1990

Иванов

Химия

3002

1970

Петров

Физика

1002

1985

Антонов

Химия

3003

2001

Тихонов

Химия

3004

2000

Галкин

Математика

4001

1985

Галкин

  • Добавить к БЗ правило, позволяющее определить:

  1. какие книги (название, номер) не возвращены студентами заданного курса;

  2. кто из студентов не вернул книги, изданные до 1990 года;

  3. кто из студентов не вернул книги заданной тематики (например, по химии).

  • Сформулировать цели:

  1. перечислить фамилии студентов 3-го курса, которые пользуются услугами библиотеки;

  2. перечислить фамилии студентов 2-го и 4-го курсов, которые пользуются услугами библиотеки;

  3. какие книги (название и номер) не возвращены студентами 2-го курса?

  4. Кто из студентов не вернул книги, изданные до 1990 года?

  5. Кто из студентов не вернул книги по физике?

2. Описать БЗ «Путешествие».

Каждый факт этой БЗ устанавливает, что можно доехать на транспортных средствах некоторой компании (1-й аргумент) из одного города (2-й аргумент – пункт отправления) в другой город (3-й аргумент – пункт назначения) и при этом воспользоваться некоторым видом транспорта (4-й аргумент). Схема маршрутов представлена на рис.1.