Главная » Статьи » Программирование » Прочие

Использование альтернативных доменов в языке Turbo Prolog

Лабораторная работа №3

Использование альтернативных доменов в языке Turbo Prolog

1. Синтаксис альтернативных доменов

При помощи составных доменов возможна реализация так называемых альтернативных доменов. В некотором смысле это аналог структуры объединения в алгоритмических языках. При этом один домен описывается совокупностью нескольких альтернативных функторов:

 

<Описание_составного_типа> ::=

<Составной_домен> = <Функтор1> (<Список_доменов1>);

                                               <Функтор2> (<Список_доменов1>);

                                               …

                                               <ФункторN> (<Список_доменовN>)

 

Правила остаются теми же: в описании предиката используется имя домена, в описании цели или факта – имя нужного функтора.

Для демонстрации альтернативных доменов расширим пример, приведенный в материале лабораторной работы №2: пусть в описание президента входит текстовая характеристика периода его правления или наименование этого периода или просто краткое примечание.

 

DOMAINS

         pres_descr = pres (name, party, state, birth_year)

         pres_adv = period_char (characteristics);

                            period_name (periodname);

                            append (app)

         name, party, state = symbol

         birth_year, year_in, year_out = integer

         characteristics, periodname, app = string

 

PREDICATES

         president (pres_descr, year_in, year_out, pres_adv)

 

CLAUSES

         president ( pres (eisenhower, republican, texas, 1890), 1953, 1961,

                            period_char (“cold war beginning”) ).

         president ( pres (kennedy, democrat, massachusetts, 1917), 1961, 1963,

                                   append (“the youngest”) ).

         president ( pres (reagan, democrat, california, 1923), 1981, 1989,

                                   period_name (“reaganomics”) ).

 

В нотации Бэкуса-Наура приведенные в примере сущности описываются следующим образом:

 

<president> ::= <pres_descr>, <year_in>, <year_out>, <pres_adv>

<pres_descr> ::= <name>, <party>, <state>, <birth_year>

<pres_adv> ::= <characteristics> | <pariodname> | <app>

 

2. Варианты заданий

Задание. Разработать описание сущностей в соответствии с нотацией Бэкуса-Наура. При помощи альтернативных доменов описать заданные структуры. Сформировать встроенную базу фактов объемом не менее пяти записей. Протестировать работоспособность программы при помощи задания различных целей.

Вариант 1. Описать владельцев ферм по разведению кроликов и кур. Атрибуты кур: порода, яйценоскость, масса, количество. Атрибуты породы: наименование, тип (мясная, яйценосная), окрас, количество. Атрибуты кроликов: порода, масса, качество шкурки. Атрибуты породы: наименование, окрас.

Вариант 2. Люди и их хобби: разведение аквариумных рыбок и комнатных растений. Атрибуты рыбок: порода, количество, средний возраст. Атрибуты породы: наименование, окрас, продолжительность жизни, корм. Атрибуты растений: вид, количество, возраст.

Вариант 3. Охотники, рыболовы и их трофеи. Атрибуты трофеев охотников: вид животного, масса, возраст. Атрибуты трофеев рыболовов: вид, масса, время года, средство ловли.

Вариант 4. Редакторы и их издания. Атрибуты газеты: название, тираж, организация-учредитель, объем. Атрибуты журнала: название, тираж, тематическая направленность, объем. Атрибуты книги: тираж, название, автор, объем.

Вариант 5. Описать коллекционеров марок, монет, спичечных этикеток. Атрибуты марки: числовой идентификатор, страна, год, есть/нет зубцы, гашеная/негашеная, описание рисунка, цвет. Атрибуты монеты: страна, год, достоинство, сохранность. Атрибуты спичечной этикетки: цвет, описание рисунка.

Вариант 6. Магазины по продаже бытовой техники. Альтернативным является домен, описывающий разновидности бытовой техники: телевизоры, магнитофоны, телефоны и т.д. со своими наборами атрибутов.

Вариант 7. Автозаводы. Разновидности продукции: легковые автомобили, грузовые автомобили, автобусы, мотоциклы. Атрибуты легкового автомобиля: наименование, литраж, скорость, количество мест, тип кузова. Атрибуты грузового автомобиля: наименование, скорость, грузоподъемность, литраж. Атрибуты автобуса: количество мест, скорость, литраж. Атрибуты мотоцикла: скорость, литраж.

Вариант 8. Электронные приборы: наименование и описание. Описание - альтернативный домен в зависимости от разновидности. Атрибуты диода: материал, технология изготовления, мощность, диапазон рабочих частот. Атрибуты транзистора: материал, тип, технология изготовления, тип корпуса, мощность, диапазон рабочих частот. Атрибуты цифровой микросхемы: функциональное назначение, разрядность.

Вариант 9. Программные продукты: текстовые редакторы, электронные таблицы, СУБД. Атрибуты текстового редактора: максимальный объем документа, максимальное количество одновременно открытых документов, описание возможностей форматирования, количество поддерживаемых шрифтов. Атрибуты электронной таблицы: максимальное количество ячеек по горизонтали и вертикали, количество таблиц в документе, максимальное количество одновременно открытых документов. Атрибуты СУБД: количество одновременно открытых БД, максимальный размер БД, максимальное количество записей БД, максимальный размер записи, количество поддерживаемых типов данных, количество пользователей, одновременной получающих доступ к БД, тип организации многопользовательской обработки.

Вариант 10. Описать владельцев фоно- и видеотек. Атрибуты видеокассеты: описание кассеты, описание записи. Атрибуты кассеты: марка, продолжительность записи. Атрибуты записи: фильм, название киностудии. Атрибуты фильма: название, продюсер, автор сценария, режиссер, жанр. Атрибуты аудиокассеты: описание кассеты, описание записи. Атрибуты кассеты: марка, продолжительность записи. Атрибуты записи: альбом, название студии. Атрибуты альбома: название, исполнитель, жанр.

Вариант 11. Описать рейсы грузовых и пассажирских перевозок: дата, транспорт, описание перевозки. Описание грузовой перевозки: вес груза, наименование груза. Описание пассажирской перевозки: количество пассажиров.

Вариант 12. Ученые и открытия: дата, ФИО, описание открытия. Открытие закона: название закона, область. Открытие географического объекта: тип объекта, название, координаты. Открытие астрономического объекта: тип объекта, название, расстояние.

Структура отчета по лабораторной работе

1.Титульный лист.

2.Цель работы.

3.Описание выполнения задания:

3.1.Формулировка задания.

3.2.Описания структур в нотации Бэкуса-Наура.

3.3.Текст программы.

3.4.Пример реализации запроса.

4.Выводы.

 

Библиографический список

1. Ин, Цин Маун. Использование Турбо-Пролога / Ин, Цин Маун, Соломон, Дэвид; Пер. с англ. Д.Ю. Буланже, О.Л. Кондратьева; Под ред. Б.Г. Сушкова. – М.:Мир, 1993. – 606 с.: ил.

2. Грэй, П. Логика, алгебра и базы данных / Грэй, П.; Пер. с англ. Х.И. Кислова, Г.Е. Минца; Под ред. Г.В. Орловского, А.О. Слисенко. – М.: Машиностроение, 1989. – 359с.

3. Марселлус, Д.Н. Программирование экспертных систем на языке Турбо-Пролог / Марселлус, Д.Н.; Пер. с англ. И.И. Чижикова; Предисл. С.В. Трубицына. – М.: Финансы и статистика, 1994. – 256 с.

Категория: Прочие | Добавил: Алексей (06.10.2014)
Просмотров: 682 | Теги: clauses, Язык, goal, DataBase, domains, Turbo Prolog, Integer, char, программирование, ProLog | Рейтинг: 0.0/0
Всего комментариев: 0
avatar