Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Логические операции на Прологе
Цели бывают простые и составные. Составная цель состоит из нескольких подцелей, соединенных либо конъюнкцией, либо разделенных дизъюнкцией. Если подцели конъюнктивные, то для выполнения главной цели должны быть выполнены все хвостовые цели. Если дизъюнктивные, то - хотя бы одна из хвостовых. Пролог–программа - совокупность фактов и правил, позволяющих делать какие-либо заключения на основе этих фактов. Программирующий на Прологе определяет «объекты» и «отношения», а затем и «правила», в которых указывается, когда эти отношения являются истинными. Предикат - это свойство объекта или отношение между объектами. Аргументы предиката - объекты, которые связывают предикат. Правила позволяют выводить из фактов некоторый другой факт. Правило - заключение, о котором известно, что оно истинно, если одно или несколько других заключений или фактов истинны. Пример правила: 1. Если нам известно, что бабушка человека - это мама его мамы или мама его папы. Соответствующее правило будет иметь вид: бабушка (Х, У): - мать(X, Z), мать (Z, Y); % мама его мамы бабушка (Х, У): - мать(X, Z), отец (Z, Y). % мама его папы 2. Есть предложение: «Лене нравится собаки, если они привлекательные». Объекты: лена и собаки. Отношение: нравится. Свойство: привлекательные. Факты: нравится(лена, собаки). привлекательные(собаки). В факте «нравится(лена, собаки)» отношение «нравится» - имя предиката, а объекты «лена» и собаки» - его аргументы. Правило: нравится(лена, собаки): - привлекательные(собаки). Переменные прописываются с прописной буквы, а константы – со строчной. Имя переменной содержит буквы латинского алфавита, цифры, нижнее подчеркивание. Пример: Факт: нравится(лена, собаки). Запрос: нравится(лена, X). Ответ: собаки В прологе нет оператора присваивания. Значения переменные получают в результате установления их соответствия с константами в фактах и правилах. Виды переменных: 1. Анонимныепеременные используются для игнорирования ненужных значений. Обозначаются (_). Как правило используются для поиска. Пример: родитель(николай, егор). % факт родитель(Родитель, _). % запрос Родитель = николай. % ответ на запрос. 2. Свободные переменные не имеют какого-либо значения. 3. Связанныепеременные – когда у свободных переменных появляется значения. Свободные переменные остаются связанными лишь то время, которое необходимо для поиска ответа на запрос; затем Пролог освобождает их, возвращается назад и ищет альтернативные решения. Основные разделы программы на языке Пролог: 1. domains - в нем описываются любые используемые домены (типы аргументов пользователя); 2. predicates - раздел объявления пользовательских предикатов (предикаты, объявленные словом nondeterm - недетерминированные предикаты - объявляются, если задача предполагает возможность получения нескольких решений); 3. clauses - раздел предложений, в котором описываются факты и правила; 4. goal – в нем определяются цели и запросы. Цель может задаваться в программе и являться внутренней, либо задаваться в диалоговом окне и соответственно являться внешней. Дополнительные разделы: 1. database - предусмотрен для объявления в программе фактов, которые должны стать частью динамической базы данных. В Прологе имеется несколько встроенных предикатов, существенно облегчающих использование динамической базы данных (consult - загрузка, save - сохранение, assert или assertz - добавление фактов в конец, asserta - в начало базы данных, retract - удаление одной записи, retractall - всех записей). 2. constants - раздел объявления констант (например, π, e). 3. global - используется для объявления, например, глобальных доменов, фактов (global domains, global facts, global database). Встроенные предикаты: - nl - обеспечивает переход на новую строку - предикат отсечения (обозначается «!»)используется для ограничения пространства поиска, с целью повышения эффективности работы программы. Способы организации циклов на Прологе: 1. С использованием встроенного предиката fail (неудача). 2. С помощью рекурсии. 3. С использованием пользовательского предиката repeat. repeat. % факт. repeat: - repeat. % правило. Для того чтобы запустить Turbo Prolog необходимо, открыть файл Prolog.exe. Перед вами появится рабочее окно (рис. 1):
Рис. 1. Окно Turbo Prolog.
В этом окне имеется главное меню, включающее в себя следующие составляющие (рис. 2):
Рис. 2. Главное меню окна Turbo Prolog.
Рассмотрим каждую из них в отдельности. Files (рис. 3):
Рис. 3. Меню Files.
Load - загрузка файла; Pick - выбор из последних загруженных файлов; New file - создание нового файла; Save - сохранение файла; Write to - запись под новым именем; Directory - выбор текущей директории; Change dir - изменение директории; OS shell - переход программы на dos-оболочку; Quit - выход. При выборе Edit происходит переход в Editor где можно редактировать файл (рис. 4).
Рис. 4. Меню Edit.
При выборе меню Run появляется возможность вести диалог с проектом. При выборе меню Compile (рис. 5)
Рис. 5. Меню Compile.
появляются следующие подменю: Memory - программа компилируется в оперативную память; OBJ file - программа компилируется в OBJ-файл; EXE file < auto link> - программа компилируется в EXE-file; Project < all modules> - компилируются все модули программы; Link only - компилируется только в ссылку. Меню Options представляет собой (рис. 6):
Рис. 6. Меню Options.
Link options - опции ссылки; Edit PRJ file - редактирование PRJ-file; Compiler Directives - настройка компиляции. Меню Setup содержит (рис. 7) Рис. 7. Меню Setup.
Colors - установка цвета; Window size - установка размера окна; Directories - установка директории; Miscellaneous - настройка отображения информации; Load SYS file - загрузка системного файла; Save SYS file - сохранение системного файла.
|