Closegraph/0 Графика
Назначение Отключает графическую систему
Обращение closegraph
Домены Нет
Шаблоны описания Нет
аргументов
Описание closegraph освобождает всю память, распределенную для
графической системы, и восстанавливает экран в режим,
который был до вызова initgraph. Графическая система
освобождает память, распределенную для драйверов,
шрифтов и т.п..
Смотри initgraph
colorsetup/1
Назначение Изменяет цвета в текущем окне
Обращение colorsetup(ОкнРамк)
Домены (integer)
Шаблоны описания (вх)
аргументов
Описание colorsetup позволяет использовать интерактивное
изменение цветов текущего окна. Используется такая же
цветовая палитра (набор цветов), как и в среде Турбо
Пролога.
colorsetup(0) Изменение цвета окна (фона).
colorsetup(1) Изменение цвета рамки.
Неудачное Никогда не дает.
завершение
Ошибки Отсутствуют.
Пример
goal
makewindow(1,7,7,"контрольное окно",5,30,10,40),
cursor(3,5),write("Изменение цвета окна"),
colorsetup(0),
cursor(3,5),write("Изменение цвета рамки"),
colorsetup(1),
clearwindow,
makewindow(_,WindAttr,FrameAttr,_,_,_,_,_),
write("\n\nАтрибутОкна=",WindAttr),
write("\n\nАтрибутРамки=",FrameAttr),
readchar(_).
comline/1
Назначение Возвращает значение командной строки операционной
системы
Обращение comline(Стр)
Домены (string)
Шаблоны описания (вых)
аргументов
Описание comline выполняется только для файлов типа .EXE.
Он возвращает значение командной строки операционной
системы, с которой программа была вызвана, без ее
имени.
Неудачное Никогда не дает.
завершение
Ошибки Отсутствуют.
Пример
config "old.sys" % конфигурация клавиатуры и
% строки подсказки
predicates
extend(string,string)
getfilename(string,string)
clauses
extend(S,S):-concat(_,".pro",S),!.
extend(S,S1):-concat(S,".pro",S1).
% Выборка имени из каталога, если нет аргументов
getfilename("",Fname):-dir("","*.pro",Fname),!.
% добавление типа .PRO, если нет типа
getfilename(X,X1):-extend(X,X1).
goal
comline(X),
getfilename(X,X1),
file_str(X1,S),
textmode(Rows,Cols),CC=Cols-1,
makewindow(1,23,0,"РЕДАКТОР",0,0,Rows,CC),
editmsg(S,S1,"","","",0,"",Ret),
removewindow,
Ret><1,!, % Запоминание, если выход не по КЛЮЧу
file_str(X1,S1).
concat/3
Назначение Соединяет две строки
Обращение concat(Стр1,Стр2,СуммСтр)
Домены (string,string,string)
Шаблоны описания (вх,вх,вых),(вых,вх,вх)(вх,вых,вх)(вх,вх,вх)
аргументов
Описание concat выполняется, как определено равенством
СуммСтр = Стр1 + Стр2
Неудачное Смотри описание.
завершение
Ошибки 2008 Результирующая строка в 'concat' или
'fronttoken' не может быть длиннее 64 Кбайт.
Пример
Goal: concat("aaa","bbb",X)
X=aaabbb
1 Решение
Goal: concat("aaa","bbb","aaabbb")
Да
Goal: concat("aaa","bbb","aaa----bbb")
Нет
Goal: concat(X,"bbb","aaa----bbb")
X=aaa----
1 Решение
Goal: concat("aaa",X,"aaa----bbb")
X=----bbb
1 Решение
consult/1
Назначение Считывает факты из текстового файла в неименованную
динамическую базу данных
Обращение consult (ИмяФайлDOS)
Домены (string)
Шаблоны описания (вх)
аргументов
Описание consult/1 считывает факты из текстового файла
ИмяФайлDOS (созданного предикатом save) и включает их
в неименованную динамическую базу данных. Если файл
содержит хотя бы одну синтаксическую ошибку, consult/
1 выдает сообщение об ошибке.
consult/1 может только добавлять недостающие факты
неименованной секции базы данных. Для считывания
фактов для других секций базы данных используется
предикат consult/2.
Неудачное Никогда не дает.
завершение
Ошибки
1101 Предполагается целое
(во время считывания терма).
1102 Предполагается вещественное
(во время считывания терма).
1103 Предполагаются двойные кавычки
(во время считывания терма).
1104 Предполагаются кавычки
(во время считывания терма).
1105 Предполагается начало списка
(во время считывания терма).
1106 Предполагается конец списка
(во время считывания терма).
1107 Функтор отсутствует в домене
(во время считывания терма).
1108 Предполагается (
(во время считывания терма).
1109 Предполагается , или )
(во время считывания терма).
1010 Попытка открыть уже открытый файл.
1027 Невозможно открыть файл.
Пример
domains
ilist=integer*
database
p1(integer,char,real,string,symbol,ilist)
p2(integer)
goal
consult("dd.dba").
/* -------- Содержание dd.dba ------------------
p1(1,'a',44.44,"Turbo","Prolog",[1,2,3,4])
p1(2,'b',-4.444E-98,"---","++++",[])
p2(88)
p2(99)
-------------------------------------------------*/
consult/2
Назначение Считывает факты из текстового файла в указанную
динамическую базу данных
Обращение consult (ИмяФайлDOS,ИмяДБД)
Домены (string,<ИмяБазыДанных>)
Шаблоны описания (вх,вх)
аргументов
Описание consult/2 считывает факты из текстового файла
ИмяФайлDOS (созданного предикатом save) и включает их
в динамическую базу данных с именем ИмяДБД. Если файл
содержит хотя бы одну синтаксическую ошибку, consult/
2 выдает сообщение об ошибке.
Неудачное Никогда не дает.
завершение
Ошибки Те же, что и в consult/1
Пример
domains
ilist=integer*
database - facts1
p1(integer,char,real,string,symbol,ilist)
database - facts2
p2(integer)
goal
consult("facts1.dba",facts1),
consult("facts2.dba",facts2).
/* -------- Содержание facts1.dba ------------------
p1(1,'a',44.44,"Turbo","Prolog",[1,2,3,4])
p1(2,'b',-4.444E-98,"---","++++",[])
------------------------------------------------*/
/* -------- Содержание facts2.dba ------------------
p2(88)
p2(99)
------------------------------------------------*/
consulterror/3
Назначение Возвращает информацию об ошибке при выполнении
предиката consult
Обращение consulterror(Стр,ПозСтр,ФайлПоз)
Домены (string,integer,integer)
Шаблоны описания (вых,вых,вых)
аргументов
Описание consulterror возвращает строку Стр, в которой имеется
синтаксическая ошибка; позицию в строке, в которой
ошибка; позицию ошибки ФайлПоз как номер байта от
начала файла.
cursor/2
Назначение Устанавливает или считывает позицию курсора в окне
Обращение cursor(Стр,Кол)
Домены (integer,integer)
Шаблоны описания (вх,вх),(вых,вых)
аргументов
Описание (вх,вх)
Перемещает курсор в указанную позицию (Стр,Кол)
относительно начальной (0,0) в активном окне.
(вых,вых)
Связывает Стр и Кол с текущей позицией курсора.
Неудачное Никогда не дает.
завершение
Ошибки 1001 Недопустимые значения позиции курсора.
Пример
goal
makewindow(1,7,7,"проверка курсора",1,1,20,70),
cursor(5,20),write("Бодро"),
cursor(Row,Col),Row1=Row+1,cursor(Row1,Col),
write("всех"),
cursor(Row2,Col2),Row3=Row1+1,cursor(Row3,Col2),
write("приветствую"),
cursor(0,0).
cursorform/2
Назначение Устанавливает или выдает форму курсора
Обращение cursorform(НЛин,КЛин)
Домены (integer,integer)
Шаблоны описания (вх,вх),(вых,вых)
аргументов
Описание cursorform устанавливает или возвращает высоту и
позицию по вертикали курсора в пределах зоны дисплея,
выделенной под один символ. Каждый символ занимает
восемь строк развертки, следовательно, НЛин и КЛин
могут иметь значения от 1 до 8 включительно.
(Необходимо отметить, что только многоцветные системы
имеют восемь линий; некоторые одноцветные системы
высокого разрешения имеют их более восьми.)
Неудачное Никогда не дает.
завершение
Ошибки Отсутствуют.
Пример
predicates
for(integer,integer,integer)
testcursorform
clauses
for(X,X,_).
for(I,A,B):-B>A,A1=A+1,for(I,A1,B).
testcursorform:-
for(StartLine,0,10), for(EndLine,0,10),
cursorform(StartLine, EndLine),
write("Начальная линия=",StartLine,
",Конечная линия= ",EndLine,
" Нажмите любую клавишу "),
readchar(_),nl,
StartLine=10,EndLine=10,!.
goal
cursorform(A,B), testcursorform, cursorform(A,B).
cutbacktrack/1
Назначение Производит динамическое отсечение совместно с
getbacktrack
Обращение cutbacktrack(Точк)
Домены (integer)
Шаблоны описания (вх)
аргументов
Описание Вызов cutbacktrack(Точк) удалит любую точку поиска с
возвратом, созданную после вызова getbacktrack(Точк).
Пример
/* Эта программа выдает список людей, имеющих хотя бы
одного друга */
database
person(string)
friends(string,string)
goal
person(P),
getbacktrack(Btop),
friends(P,Friend),
write(Friend),nl,
cutbacktrack(Btop).
clauses
person("Henry Huggins").
person("Jerome Jones").
person("Betty Brown").
friends("Betty Brown","Kathy Williams").
friends("Jerome Jones","Vibeke Victors").
friends("Jerome Jones","Donald Smith").
date/3
Назначение Устанавливает или считывает дату в системе
Обращение date(Год,Мес,День)
Домены (integer,integer,integer)
Шаблоны описания (вх,вх,вх),(вых,вых,вых)
аргументов
Описание (вх,вх,вх)
Устанавливает дату во внутренних компьютерных часах.
(вых,вых,вых)
Считывает дату с внутренних компьютерных часов.
Неудачное Никогда не дает.
завершение
Ошибки 1074 Недопустимый параметр предиката 'date'.
Пример
Goal: date(Y,M,D)
Y=1980, M=1, D=3
1 Решение
Goal: date(1988,3,3)
Да
Goal: date(Y,M,D)
Y=1988, M=3, D=3
1 Решение
- Справочное руководство по турбо прологу 2.0
- Глава 2. Элементы языка 50
- Глава 3. Интерфейс с другими языками 75
- Часть 2. Стандартные предикаты 91
- Часть 3. Приложения 250
- Введение
- Дистрибутивные диски
- Рекомендуемая литература:
- Часть 1. Руководство программиста по турбо прологу глава 1. Система меню турбо пролога
- Пользователям Турбо Пролога 1.X
- Структура меню Турбо Пролога
- Выбор элементов меню.
- "Горячие" клавиши.
- Системные окна и строки помощи
- Окно редактирования.
- Как войти в окно редактирования
- Компоненты окна редактирования
- Как выйти из окна редактирования.
- Окно трассировки
- Окно сообщений
- Диалоговое окно
- Строка помощи
- Главное меню.
- Окно редактирования.
- Окно вспомогательного редактирования (Xedit).
- Окно просмотра.
- Изменение размера окон.
- Просмотр окон
- Создание нового файла.
- Загрузка существующего файла.
- Команды редактора.
- Сохранение исходного текста в файле.
- Запись исходного текста на диск
- Вспомогательный редактор
- Меню и команды
- Меню файлов (Files)
- Загрузка файлов (Load)
- "Указка" (Pick)
- Новый (New)
- Выход (Quit)
- Команда редактирования (Edit)
- Команда запуска (Run)
- Меню компиляции (Compile)
- Память (Memory)
- Меню опций (Options)
- Опции компоновки (Link Options)
- Стек (Stack)
- Область ссылок (Trail Array)
- "Куча" (Heap)
- Контроль во время исполнения (Run-time check)
- Цвета (Colors)
- Размер окна (Window size)
- Каталоги
- Текущий каталог (Current directory)
- Авто-загрузка сообщений (Avto-Load Message)
- Режим экрана (Screen mode)
- Конфигурация клавиатуры (Keyboard Configuration)
- Перемещение курсора (Cursor movement)
- Глава 2. Элементы языка
- Ключевые слова.
- Специальные предикаты.
- Разделы программы.
- Раздел доменов (domains).
- Стандартные домены.
- Списковые домены.
- Домены составных объектов.
- Файловый домен.
- Специально заданные предопределенные домены.
- Сокращение объявлений доменов.
- Объявление ссылочных доменов.
- Раздел предикатов (predicates).
- Раздел базы данных (database).
- Раздел предложений (clauses).
- Простые константы.
- Переменные.
- Составные объекты.
- Списки - Специальный вид составных объектов.
- Раздел констант.
- Условная компиляция.
- Включение файлов в вашу программу.
- Директивы компилятора.
- Управление памятью в Турбо Прологе.
- Экономия ресурсов памяти.
- Управление распределением памяти.
- Генерирование выполняемых программ.
- Модульное программирование.
- Проекты.
- Глобальные объявления.
- Глобальные домены.
- Глобальная база данных.
- Глобальные предикаты.
- Компиляция и компоновка модулей.
- Пример.
- Глава 3. Интерфейс с другими языками
- Вызов других языков из Турбо Пролога.
- Что делать перед вызовом.
- Объявление внешних предикатов.
- Вызов соглашений и передача параметров.
- Соглашение об обозначениях
- Использование ключевого слова as
- Вызов процедуры, написанной на Си из Пролога.
- Опции компилятора Турбо Си и компоновка.
- Вызов программ на языке ассемблера из Турбо Пролога.
- Использование внутреннего ассемблера Турбо Си.
- Вызов Турбо Пролога из других языков.
- Динамическое распределение памяти.
- Передача составных объектов в другие языки.
- Передача списков.
- Передача структур.
- Примеры.
- Обработка списков.
- Программирование на низком уровне.
- Часть 2. Стандартные предикаты
- Arc/5 Графика
- Bar/4 Графика
- Bt_close/2 Внешняя База Данных
- Bt_create/5 Внешняя База Данных
- Bt_delete/2 Внешняя База Данных
- Bt_open/3 Внешняя База Данных
- Bt_statistics/8 Внешняя База Данных
- Chain_delete/2 Внешняя База Данных
- Chain_first/3 Внешняя База Данных
- Chain_inserta/5 Внешняя База Данных
- Chain_insertafter/5 Внешняя База Данных
- Chain_insertz/5 Внешняя База Данных
- Chain_last/3 Внешняя База Данных
- Chain_next/3 Внешняя База Данных
- Chain_prev/3 Внешняя База Данных
- Chain_terms/5 Внешняя База Данных
- Circle/3 Графика
- Cleardevice/0 Графика
- Clearviewport/0 Графика
- Closegraph/0 Графика
- Db_btrees/2 Внешняя База Данных
- Db_chains/2 Внешняя База Данных
- Db_close/1 Внешняя База Данных
- Db_create/3 Внешняя База Данных
- Db_delete/2 Внешняя База Данных
- Db_flush/1 Внешняя База Данных
- Db_garbagecollect/1 Внешняя База Данных
- Db_open/3 Внешняя База Данных
- Db_openinvalid/3 Внешняя База Данных
- Db_statistics/5 Внешняя База Данных
- Detectgraph/2 Графика
- Drawpoly/1 Графика
- Ellipse/6 Графика
- Fillellipse/4 Графика
- Fillpoly/1 Графика
- Floodfill/3 Графика
- Getarccoords/6 Графика
- Getaspectratio/2 Графика
- Getbkcolor/1 Графика
- Getcolor/1 Графика
- Getdefaultpalette/1 Графика
- Getdrivername/1 Графика
- Getfillpattern/1 Графика
- Getfillsettings/2 Графика
- Getgraphmode/1 Графика
- Getimage/6 Графика
- Getlinesettings/3 Графика
- Getmaxcolor/1 Графика
- Getmaxx/1 Графика
- Getmaxy/1 Графика
- Getmaxmode/1 Графика
- Getmodename/2 Графика
- Getmoderange/3 Графика
- Getpalette/1 Графика
- Getpalettesize/1 Графика
- Getpixel/3 Графика
- Gettextsettings/5 Графика
- Getviewsettings/5 Графика
- Getx/1 Графика
- Gety/1 Графика
- Graphdefaults/0 Графика
- Graphresult/1 Графика
- Imagesize/5 Графика
- Initgraph/5 Графика
- Key_current/4 Внешняя База Данных
- Key_delete/4 Внешняя База Данных
- Key_first/3 Внешняя База Данных
- Key_insert/4 Внешняя База Данных
- Key_last/3 Внешняя База Данных
- Key_next/3 Внешняя База Данных
- Key_prev/3 Внешняя База Данных
- Key_search/4 Внешняя База Данных
- Line/4 Графика
- Linerel/2 Графика
- Lineto/2 Графика
- Moverel/2 Графика
- Moveto/2 Графика
- Outtext/1 Графика
- Outtextxy/3 Графика
- Pieslice/5 Графика
- Pieslicexy/6 Графика
- Putimage/4 Графика
- Putpixel/3 Графика
- Rectangle/4 Графика
- Restorecrtmode/0 Графика
- Setactivepage/1 Графика
- Setallpalette/1 Графика
- Setaspectratio/2 Графика
- Setbkcolor/1 Графика
- Setcolor/1 Графика
- Setfillpattern/2 Графика
- Setfillstyle/2 Графика
- Setgraphmode/1 Графика
- Setgraphbufsize/1 Графика
- Setlinestyle/3 Графика
- Setpalette/2 Графика
- Setrgbcolor/4 Графика
- Settextjustify/2 Графика
- Settextstyle/3 Графика
- Setusercharsize/4 Графика
- Setviewport/5 Графика
- Setvisualpage/1 Графика
- Setwritemode/1 Графика
- Term_delete/3 Внешняя База Данных
- Term_replace/4 Внешняя База Данных
- Textheight/2 Графика
- Textwidth/2 Графика
- Часть 3. Приложения приложение а. Введение вdos
- Что такое dos
- Как загрузить программу?
- Каталоги
- Подкаталоги
- Avtoexec.Bat-файл
- Команда path
- Смена каталогов
- Приложениеb. Интерактивный редактор турбо пролога
- Быстрый вход, быстрый выход
- Служебная строка окна редактора
- Основные команды редактора
- Команды Редактора, совпадающие с командами WordStar Основные команды работы с курсором
- Команды быстрого движения курсора
- Команды вставки и удаления
- Команды работы с блоками
- Остальные команды редактора
- Старые команды
- Поиск и замена
- Редактор Турбо Пролога по сравнению с WordStar
- Корректировка файла на диске.
- Приложение c. Сообщения об ошибках
- Приложение d. Различия между версиями 1.1 и 2.0
- Файл определения проекта
- Новые ограничения по именам
- Новые предопределенные домены
- Контроль состава параметров шаблона (flow pattern)
- Поддержка старых командных клавиш редактора
- Ошибочные ситуации в стандартных предикатах
- Расширение Турбо Пролога 2.0
- Системные расширения
- Приложениеe. Словарь специальных терминов
- Приложение f. Географическая база данных (Geobase)
- Использование Geobase
- Системы с 2-мя флоппи-дисковыми устройствами
- Компиляция Geobase
- Создание автономной программы
- Главное меню Geobase
- Справка
- Команды dos
- Редактор
- Запросы к базе данных
- Просмотр языка
- Корректировка языка
- Принципы Geobase
- Использование принципа Geobase
- Создание вашей базы данных
- Преобразование Geobase
- Предикат "ent"
- Предикат "db"
- Трансляция запросов на естественном языке
- Внутренние имена объектов
- Внутренние имена связей
- Определение структуры предложений
- База данных языка
- Грамматический разбор с помощью разделения списков
- Заключение
- Приложение g. Анализатор предложений на турбо прологе
- Использование анализатора предложений
- Помощь пользователя
- Операционная система
- Редактирование базы данных
- Загрузка базы данных из файла
- Сохранение базы данных
- Анализ предложений
- «Показать/изменить словарь»
- Приложениеh.Geni: оболочка экспертной системы
- Использование geni
- Запросы geni
- Просмотр знаний
- Корректировка базы знаний
- Сохранение базы знаний
- Создание новой базы знаний
- Чистка текущей базы знаний
- Проектирование новой базы знаний
- Приложение I. Tlib: библиотека турбо
- Компоненты командной строки tlib
- Компонент «описание»
- Список операций
- Имена файла и модуля
- Операции tlib
- Создание библиотеки
- Использование файла ответа
- Расширенные возможности: опция /с
- Примеры
- Приложение j. Tlink: компоновщик турбо
- Активизация tlink
- Использование ответных файлов
- Компоновка модулей Турбо Пролога и Турбо Си.
- Модуль инициализации
- Библиотеки
- Опции tlink
- Опция /c
- Опция /d
- Опция /I
- Опция /l
- Опции /m, /s, /X
- Опция /m
- Опция /s
- Опция /X
- Опция /n
- Ограничения
- Сообщения об ошибках
- Предупреждения
- Нефатальные ошибки
- Фатальные ошибки
- Приложение k. Метапрограммирование Введение
- Пролог/Турбо: развитие и философские установки
- Конструкторские решения в Турбо Прологе
- Чем Турбо зарядило Турбо Пролог
- Интерпретатор правил с обратной цепочкой рассуждений
- Термы (горючее для интерпретатора правил)
- Статические термы: область sTerm (статических термов)
- Интерпретирование области термов.
- Что такое интерпретатор?
- Интерпретация правил в Прологе
- Использование sTerm и aTerm для моделирования интерпретатора правил
- Переменные и среда
- Процесс унификации
- Унификация статических и действительных термов
- Интерпретация тела правила
- Выполнение выполняемых термов: предикат call.
- Встроенные предикаты
- Сканнер и транслятор
- Операторы традиционного Пролога
- Использование операторов в Турбо Прологе
- Интерпретатор Пролога
- Реализация трассировки
- Теперь объединим все вместе
- Расширения экспертной системы
- Цепочка с прямым порядком рассуждений
- Стандартные предикаты, реализованные в pie
- Заключение