Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное_пособие_флп.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
675.84 Кб
Скачать

3.2.1. Составная структура

На Прологе это выглядит так:

student(name(“liz”,”petrova”),address(“moscow”,”lefortov”,23))

student – главный функтор;

name, address- функторы

Функтор – это имя (не функция), которое идентифицирует сложную структуру объекта данных и связывает его аргументы вместе. Аргументы в свою очередь могут быть составными. Функтор помогает распознавать различия в объектах (один объект - это имя, другой объект- это адрес). Пролог позволяет объявлять составные объекты в разделе domains:

domains

stud_name=name(symbol,symbol)

stud_addr=address(symbol,symbol,integer)

predicates

student(stud_name,stud_addr)

clauses

student(name(“liz”,”petrov”),address(“Moscow”,”lefortov”,23)).

Имена доменов stud_name и stud_addr – это имена составных объектов, образованных при помощи функторов name и address.Таким образом, составной объект является определенной структурой доменов. Каждая структура предполагает особое представление фактов в базе данных (БД).

Структура обеспечивает средство сортировки объектов по категориям. Ссылки на доменную структуру осуществляются по имени функтора.

Пролог позволяет конструировать составные объекты с несколькими уровнями.

Листинг3.1. Использование доменной структуры с именем personal_library

domains

personal_library = book(title, author, publisher, year)

collector, title, author, publisher=symbol

year=integer

predicates

collection(collector, personal_library)

clauses

collection(ivanov,book(“Artificial intelligence”,”Patrick Winston”,”Addison-Wesley Publishing company”,2005)).

сollection(petrov, book(“Artificial intelligence”, ”Stuart Rassel”, ”Pretice Hall”,2007)).

.................................................

и т.д.

3.2.2.Доменная структурная диаграмма программы “Библиотека” (дсд)

personal_lilrary домен

|

book функтор структуры 0-уровень

__________|_______________ |

| | | |

title author publisher year уровень1

3.2.3.Предикатная структурная диаграмма программы “Библиотека” (псд)

collecton -предикат 0-уровень

____|________

| |

collector book -функтор уровень1

____________|_________________

| | | |

title author publisher year -уровень2

ДСД является компонентой ПСД.

Диаграммы показывают, как организованы домены и предикаты.

Все компоненты структуры и их уровни здесь видны очень ясно. Верхние уровни определяют общие черты структуры, нижние уровни отображают детали. Используются при разработке и документировании программ и проектов наряду с диаграммами потоков данных и структурными схемами.

Важная особенность составных объектов состоит в том, что они позволяют передавать группы величин как один аргумент. Мы можем иметь одну переменную для хранения целой группы величин. И это достигается благодаря использованию составного объекта.