- •Кафедра Информационных систем и вычислительной техники Национального минерально-сырьевого университета «Горный"
- •Содержание
- •История развития и современное состояние языка prolog
- •Тенденции в истории развития языка Prolog
- •Области применения языка Prolog
- •Современные реализации языка Prolog
- •Поддержка веб-технологий в реализацях Prolog
- •Основы разработки prolog-программ
- •Общие сведения о языке Prolog
- •Понятие факта, правила, запроса и процедуры
- •Механизм сопоставления и поиска с возвратом
- •Основные элементы языка Prolog
- •Среда разработки программ pie и система swi-prolog
- •Основы работы в консоли Prolog
- •Основы работы с программными файлами
- •Справка и помощь в среде swi-Prolog
- •Основы трассировки и отладки в среде pie и swi- Prolog
- •Графические интерфейсы на базе swi-Prolog/xpce
- •Загрузка и запуск программ swi-Prolog'a
- •Использование ярлыков для запуска программ
- •Использование командных и скриптовых сценариев
- •Среда разработки turbo-prolog
- •Структура программы на Turbo Prolog'e
- •Оболочка системы Turbo Prolog
- •Отладка и трассировка программ
- •Работа с простейшими программами в Turbo Prolog'e
- •Работа с графикой в Turbo Prolog'e
- •Среда разработки visual prolog
- •Интегрированная среда разработки
- •Разработка консольного проекта
- •Разработка gui проекта на Visual Prolog'e
- •Prolog — язык логического программирования
- •Системы основанные на знаниях
- •Логические модели и логическое программирование
- •Простейшие конструкции языка предикатов
- •Предикатные формулы
- •Определение правильно построенной формулы
- •Логический вывод
- •6.6.1. Правило резолюции для простых предложений
- •Правило резолюции для сложных предложений
- •Простая резолюция сверху вниз
- •Общая резолюция сверху вниз
- •Унификаторы и примеры унификации
- •Решение задач и извлечение ответа
- •Приложение 1. Запуск Turbo-Prolog в ос Windows 7
- •1. Стандартные предикаты ввода данных.
- •Предикаты преобразования данных
- •Предикаты работы с окнами.
- •Предикаты работы с файлами.
- •Предикаты управления экраном.
- •Предикаты обработки строк.
- •Предикаты работы с графикой.
- •Разные предикаты.
- •Правила вычисление атрибутов экрана.
- •Приложение 3. Пример программы построения дерева синтаксического анализа
- •Интеллектуальные информационные системы prolog - язык разработки интеллектуальных и экспертных систем
Предикаты работы с окнами.
Синтаксис предиката
Назначение предиката
makewindow( НомерОкна , ЦветЭкрана, ЦветРамки , ЗаголовокРамки , Строка ,
Столбец , Высота , Ширина )
( integer, integer, integer, string, integer,
integer, integer, integer) -- (i,i,i,i,i,i,i,i)
Определяет область экрана как окно. Параметр ЦветРамки ограничивает область окна рамкой указанного цвета. Значения Строка и Столбец определяют верхнюю позицию окна, а Высота и Ширина - его размеры. Параметр ЦветЭкрана определяет цвет окна и символов.
shiftwindow( НомерОкна )
(integer) -- (io)
Устанавливает или возвращает номер текущего окна.
removewindow
Удаляет текущее окно с экрана.
clearwindow
Удаляет текст из текущего окна.
window_str( ЭкраннаяСтрока )
(string) -- (io)
В случае (i) - связывает аргумент со строкой, выводимой в текущем окне. ЭкраннаяСтрока имеет то же количество линий (строк), сколько их в окне. Длина каждой строки определяется последним символом, отличным от пробела.
В случае (о) - аргумент выводится в окно. Если в аргументе больше строк, чем в окне, то выводятся только те, которые помещаются в окне и строка усекается
window_attr( Атрибут )
(integer) -- (i)
Устанавливает значение атрибута для текущего окна.
Предикаты работы с файлами.
Турбо-Пролог определяет текущий входной данных, из которого производится чтение всех вводимых данных, и текущий выходной поток, в который производится запись данных. Обычно с текущим выходным потоком связывается дисплей, а с текущим входным потоком - клавиатура.
Однако, в ряде случаев используются операции чтения или записи данных в файлы. Для того чтобы получить доступ к файлу, он должен быть открыт. Файл может быть открыт для чтения, для записи, для добавления информации или для модификации.
Когда файл открыт, Турбо-Пролог связывает символическое (СимволИмяФайла) имя файла с действительным именем файла (ИмяФайла), используемым в каталоге ДОС. Символическое имя файла должно быть атомом и должно быть описано в программе в разделе domains как стандартный тип file. B программе тип file может встречаться в разделе domains один раз.
Синтаксис предиката |
Назначение предиката |
openread( СимволИмяФайла , ИмяФайла ) ( file , string ) -- (i,i) |
Открывает файл для чтения. |
openwrite( СимволИмяФайла , ИмяФайла ) ( file , string ) -- (i,i) |
Открывает файл для записи. Если такой файл уже существовал в каталоге, то содержимое его уничтожается. |
орепарре^(СимволИмяФайла,ИмяФайла ) ( file , string ) -- (i,i) |
Открывает дисковый файл для добавления информации. |
орептойИу(Спл1ВолИл1яФайла,Ил1яФайла ) ( file , string ) -- (i,i) |
Открывает файл для чтения и записи. |
readdevice( СимволИмяФайла ) ( file ) -- (io) |
Переключает текущий входной поток данных на файл с указанным именем. Аргумент должен быть связанным и открыт для чтения, иначе происходит связывание СимволИмяФайла с именем активного читающего устройства. |
writedevice( СимволИмяФайла ) ( file ) -- (io) |
Определяет текущий входной поток при условии, что указанный файл открыт либо для записи, либо для добавления информации. |
closefile( СимволиИмяФайла ) ( file ) -- (i) |
Предикат closefile(...) закрывает файл. |
filepos( СимволИмяФайла , Позиция , Режим ) ( file , real , integer ) -- (i,io,i) |
Изменить место чтения или записи в указанном файле, который должен быть открыт для чтения и записи. Параметр Режим указывает позицию места чте- ния/записи относительно: начала файла (0), текущей позиции (1), конца файла (2) |
eof( СимволИмяФайла ) ( file ) -- (i) |
Проверяет является ли текущая позиция в процессе чтения концом файла. |
existfile( ИмяФайла ) ( string ) -- (i) |
Проверяет наличие файла в текущем каталоге Используется перед попыткой открыть файл. |
deletefile( ИмяФайла ) ( string ) -- (i) |
Уничтожает файл с именем ИмяФайла из каталога ДОС. |
renamefile( СтароеИмя , НовоеИмя ) ( string , string ) -- (i,i) |
Переименовывает файл, если НовоеИмя нет в каталоге и оба имени корректны. |
disk( Путь к каталогу ) |
Устанавливает текущее устройство и ката- |
лог.
Стандартные имена устройств для readdevice и writedevice следующие: printer, screen, keyboard. Для записи в файл необходимо сменить текущий выходной поток данных так, чтобы им был файл, в который будут записываться данные. Позиция в файле, в которой имели место чтение или запись, может управляться предикатом filepos.
