Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по ИИС.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Контрольное задание:

Подготовить файл базы данных, содержащий несколько фактов. В структуре фактов базы данных должны быть использованы данные типа «список», «функтор», «альтернативный домен». Разработать и отладить программу, реализующую следующие операции с базой данных: загрузку, просмотр базы данных, добавление фактов в базу данных, удаление фактов из базы данных (по заданному условию), сохранение базы данных, поиск. Программа должна иметь меню и систему окон. Тематика базы данных соответствует выбранным вами вариантам курсовых работ.

Контрольные вопросы:

  1. Дайте определение языка Пролог.

  1. Сформулируйте понятие факта.

  1. Перечислите виды переменных.

  2. Какие основные разделы программы на языке Пролог вы знаете?

  3. Назовите дополнительные разделы программы на языке Пролог.

  4. Дайте определение предиката.

  5. Перечислите встроенные предикаты.

  6. Перечислите способы организации циклов на Прологе.

Лабораторная работа №5.

ОСНОВЫ РАБОТЫ В СИСТЕМЕ VISUAL PROLOG.

Цель работы: знакомство с оболочкой Visual Prolog, формирование умений и навыков работы в данной среде программирования.

Используемое программное обеспечение:Visual Prolog 5.2.

Теоретические сведения

Prolog является языком, основанным на программировании логики. Вместо детальных инструкций, предписывающих как решать ту или иную задачу, программист на языке Prolog уделяет основное внимание описанию задачи. В среде Visual Prolog используется подход, получивший название «визуальное программирование», при котором внешний вид и поведение программ определяются с помощью специальных графических средств проектирования без традиционного программирования на алгоритмическом языке.

Visual Prolog автоматизирует построение сложных процедур и освобождает программиста от выполнения тривиальных операций. С помощью Visual Prolog проектирование пользовательского интерфейса и связанных с ним окон, диалогов, меню, линии уведомлений о состояниях и т.д. производится в графической среде. В Visual Prolog входят интерактивная среда визуальной разработки (VDE - Visual Develop Environment), которая включает текстовый и различные графические редакторы, инструментальные средства генерации кода, конструирующие управляющую логику (Experts), а также являющийся расширением языка интерфейс визуального программирования (VPI - Visual Programming Interface), Пролог-компилятор, набор различных подключаемых файлов и библиотек, редактор связей.

Visual Prolog поддерживается различными операционными системами, в том числе MS-DOS Phar Lap-Extended DOS, всеми версиями Windows, 16- и 32-битовыми целевыми платформами OS/2, а также некоторыми другими системами, требующими графического пользовательского интерфейса.

Интерфейс Visual Prolog включает: главное меню, панель инструментов, окно проекта.

Открытие окна редактирования

Чтобы создать новое окно редактирования, используйте команду меню File → New или клавишу F7. После выполнения этой команды откроется новое окно редактирования с заголовком «noname.pro» (рис. 1).

Рис. 1. Окно редактирования

В окне редактирования выполняется реализация программного кода. Редактор Пролога это стандартный текстовый редактор. Здесь поддерживаются такие функции как: «Вырезка», «Копирование», «Вставка» и «Отмена/Восстановление», которые могут быть активизированы из меню Edit.

Выполнение и проверка программы

Чтобы проверить, что система работает должным образом, напечатайте следующий текст в окне редактирования:

GOAL write(“Hello world”), nl.

GOAL - это цель, задача в терминологии Prolog, и этой строки достаточно, чтобы являться программой, которая может быть выполнена. Чтобы выполнить цель, нажмите пункт меню Project → Test Goal или комбинацию горячих клавиш Ctrl+G. Также вы можете нажать кнопку на панели инструментов.

Если ваша система работает должным образом, на экране появится результат для вывода (рис. 2).

Рис. 2. Окно вывода результата

Результат выполнения появится в отдельном окне («Hello world, yes»), которое Вы должны закрыть перед запуском другой цели. Visual Prolog обрабатывает цель как программу, которую система компилирует, связывает и генерирует выполняемую программу.

Загрузка сохраненного файла

Чтобы открыть сохраненные файлы используйте File → Open или нажмите F8. Затем укажите путь к нужному файлу (рис.3).

Р ис. 3. Открытие файла

Для сохранения программы следует использовать команду File → Save.

Исправление ошибок

Если в вашей программе допущены некоторые ошибки, система Visual Prolog выдаст окно, в котором содержится список ошибок. Напечатайте следующий текст программы в файле noname.pro:

predicates

reshenie(real)

resheniea(real)

reshenieb(real)

clauses

reshenie(X):-

X=sin(3,141592653).

resheniea(Y):-

Y=cos(3,141592653).

reshenieb(V):-

V=exp(2,5).

goal

reshen(X).

Нажмите в меню Project → Test Goal.

Система выдаст сообщение об ошибке. По двойному нажатию левой кнопки мыши система укажет позицию ошибки в исходном тексте (рис. 4).

Рис. 4. Сообщение об ошибке

Контрольные задания:

  1. Самостоятельно изучите и сформулируйте назначение кнопок на панели инструментов.

  2. Изучите и охарактеризуйте главное меню Visual Prolog.

  3. Выясните, с какими окнами в Visual Prolog вам придется работать?

Контрольные вопросы:

  1. Для чего предназначено программное обеспечение Visual Prolog?

  2. В чем отличие Visual Prolog от Turbo Prolog?

  3. С чего начинается написание программы на Прологе?

  4. Где была допущена ошибка в программе из пункта Исправление ошибок?

Лабораторная работа №6.

ОСНОВЫ ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ.

Цель работы: изучение основных конструкций языка логического программирования и формирование представления о структуре программы, написанной на языке Пролог.

Используемое программное обеспечение:Visual Prolog 5.2.

Теоретические сведения

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

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

Пролог использует упрощенный вариант синтаксиса логики предиката, потому что он обеспечивает легкость понимания и подобен естественному языку.

Пролог включает в себя механизм логического вывода, который используется для логического анализа информации. Этот механизм включает в себя сопоставление с образцом, при помощи которого извлекается имеющаяся (известная) информация, соответствующая ответам на вопросы. Пролог пытается логически доказать правильность гипотезы (другими словами, отвечая на вопрос), основываясь на уже точно известных данных.

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

Основные разделы программы на Прологе

Обычно, программа на Прологе состоит из четырех основных разделов. Это раздел доменов, раздел предикатов, раздел предложений и раздел целей.

Структура программы:

DOMAINS

/* ...

объявление доменов

... */

PREDICATES

/* ...

объявление предикатов

... */

CLAUSES

/* ...

предложения (правила и факты)

... */

GOAL

/* ...

подцель_1,

подцель_2,

и т.д. */

    1. Раздел доменов предназначен для объявления любых нестандартных доменов, которые в дальнейшем будут аргументами пользовательских предикатов. Стандартные основные домены языка Пролог: char, byte, short, ushort, word, integer, unsigned, long, ulong, dword, real, string и symbol.

Правило объявления доменов:

Тип аргумента 1, ….. тип аргумента N = <standard domain>

    1. Раздел предикатов PREDICATES используется для объявления пользовательских предикатов (встроенные предикаты языка Пролог объявлять не нужно).

Предикат - это имя свойство объекта или отношение между объектами с последовательностью аргументов.

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

Например, факт

black(cat).

записан с использованием предиката black, имеющего один аргумент.

Факт

railway(novosibirsk, omsk).

записан с использованием предиката railway, имеющего два аргумента.

Число аргументов предиката называется арностью предиката и обозначается black/1 (предикат black имеет один аргумент, его арность равна единице). Предикаты могут не иметь аргументов, арность таких предикатов равна 0.

Правило описания предикатов:

Объявление предиката начинается с имени предиката, сопровождаемого открытой (левой) круглой скобкой. После имени предиката и открывающей скобки идут аргументы предиката, если они есть.

имя предиката(тип аргумента 1, [тип аргумента 2], …)

Тип аргумента 1, [тип аргумента 2], … являются или стандартными доменами или доменами, которые Вы заранее должны были объявить в разделе доменов.

Имя предиката может содержать буквы латинского алфавита, цифры и нижнее подчеркивание.

    1. Раздел предложений CLAUSES предназначен для фактов и правил, на которых Пролог будет основываться для решения поставленных целей.

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

В виде фактов в программе записываются данные, которые принимаются за истину и не требуют доказательства. Данные в фактах могут быть использованы для логического вывода. Факт может описывать свойства конкретных объектов или отношения между некоторыми объектами.

Факт - это свойство объекта или отношение между объектами, для которого известно, что они истинны.

Правила позволяют Вам выводить одни факты из других. Другими словами, правила как заключения являются верными, если правота фактов или заключений, на основе которых они были сделаны, точно определена.

Правило описания предложений:

имя предиката(имя объекта 1, [имя объекта 2], …). % факт.

имя предиката(имя объекта 1, [имя объекта 2], …):- имя предиката(имя объекта 1, [имя объекта 2], …). % правило.

  1. Раздел целей GOAL используется для стартовой цели программы на языке Пролог.

Для того чтобы программа, написанная на языке Prolog, начала работу, к ней нужно обратиться с запросом. Запросы могут быть двух видов: внутренние и внешние. Внутренние запросы записываются непосредственно в тексте программы, для использования внешних запросов нужна программная оболочка.

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

Правило описания цели:

имя предиката(имя объекта 1, [имя объекта 2], …).