Lineto/2 Графика
Назначение Рисует линию из текущей позиции в точку (X,Y)
Обращение lineto(X,Y)
Домены (integer,integer)
Шаблоны описания (вх,вх)
аргументов
Описание lineto рисует линию из текущей позиции к точке (X,Y),
значение текущей позиции будет равно (X,Y).
Смотри getlinesetting,line,linerel,setcolor
makewindow/8
Назначение Создает новое окно на экране с указанными границами
Обращение makewindow(НомОкна,АтрЭкр,АтрРамки,СтрРамки,
Строка,Столбец,Высота,Ширина)
Домены (integer,integer,integer,string,
integer,integer,integer,integer)
Шаблоны описания (вх,вх,вх,вх,вх,вх,вх,вх) и
аргументов (вых,вых,вых,вых,вых,вых,вых,вых)
Описание (вх,вх,вх,вх,вх,вх,вх,вх)
makewindow определяет область экрана как окно.
Аргументы в makewindow следующие:
НомОкна Каждое окно определяется номером НомОкна,
который вы потом используете, выбирая
активное окно.
АтрЭкр Атрибут экрана окна.
АтрРамки Если АтрРамки не является нулем,
makewindow рисует границу вокруг
описываемой области (обрамляя окно).
СтрРамки Строка, которая будет помещаться в центре
линии верхней границы контура рамки. Если
СтрРамки = "" (пустая строка), текста не
будет в верхней линии рамки окна.
Если текст строки шире, чем граница, он
будет обрезаться.
Строка Определяет вертикальные координаты
верхнего левого угла относительно всего
экрана.
Столбец Определяет горизонтальные координаты
верхнего левого угла относительно всего
экрана.
Высота Высота экрана, измеряемая в количестве
строк.
Ширина Ширина экрана, измеряемая в количестве
колонок.
Как только окно определено, экран очищается и курсор
перемещается в верхний левый угол окна. Комбинация
параметров Строка и Высота, Столбец и Ширина
определяет окно, которое располагается полностью
внутри размеров экрана. Если какая-либо часть окна
выходит за пределы экрана, то активизируется
программа ошибок. Размер экрана может быть иэменен с
помощью стандартного предиката textmode.
(вых,вых,вых,вых,вых,вых,вых,вых)
Этот шаблон аргументов позволяет определить текущие
значения текущего окна.
Неудачное Никогда не дает.
завершение
Ошибки 1000 Аргументы в 'makewindow'неверные.
1016 Максимальный номер окна превосходит границы.
Пример
predicates
nondeterm repeat
delay(integer)
framewindow(112), delay(1000), framewindow(7),
keypressed.
clauses
repeat.
repeat :- repeat.
delay(0):-!.
delay(N):-N1=N-1,delay(N1).
makewindow/11
Назначение Создает окно с заданной пользователем рамкой
Обращение makewindow(НомОкна,АтрЭкр,АтрРамки,СтрРамки,
Строка,Столбец,Высота,Ширина,
ЧиститьОкно,ПозСтрРамки,ЗнакиГраницы)
Домены (integer,integer,integer,string,
integer,integer,integer,integer,
integer,integer,string)
Шаблоны описания (вх,вх,вх,вх,вх,вх,вх,вх,вх,вх,вх)
аргументов (вых,вых,вых,вых,вых,вых,вых,вых,вых,вых,вых)
Описание Используя эту версию makewindow вы можете задавать
символы для рамки окна, расположение заголовка окна,
необходимость чистить окно после его создания. Первые
восемь аргументов аналогичны аргументам в makewindow/
8. Дополнительные три аргумента в makewindow
следующие:
ЧиститьОкно Определяет будет ли чиститься окно
после его создания:
0 = Не чистить окно.
1 = Чистить окно.
ПозСтрРамки Определяет, где будет размещаться
заголовок окна (внутри верхней линии
рамки окна):
-1 = Заголовок в центре
N = Размещает заголовок с
указанной позиции
ЗнакиГраницы Описывают,как рисовать рамку окна;
этот аргумент состоит строго из шести
символов, которые означают следующее:
1 символ Верхний левый угол
2 символ Верхний правый угол
3 символ Нижний левый угол
4 символ Нижний правый угол
5 символ Горизонтальная линия
6 символ Вертикальная линия
Например:
"\218|191\192\217\196\179" -граница из одной линии.
"\201\187\200\188\205\186" -граница из двух линий.
"++++|-" -другой вариант описания границы.
Неудачное Никогда не дает.
завершение
Ошибки 1000 Аргументы в makewindow неверные.
1016 Максимальный номер окна превосходит границы.
Пример
goal
makewindow(1,7,7,"Окно 1",
1,1,10,40,1,0,"\176\176\176\176\176\179"),
makewindow(2,7,7,"Окно 2",6,20,10,
40,0,30,"******"),
readchar(_),
window_str(X), % Читает содержимое экрана
removewindow,
readchar(_),
write(X),readchar(_).
membyte/3
Назначение Читает или записывает байты из или в физическую
память
Обращение membyte(Сегмент,Смещение,Байт)
Домены (integer,integer,integer)
Шаблоны описания (вх,вх,вх) , (вх,вх,вых)
аргументов
Описание (вх,вх,вх)
Когда переменная Байт является связанной
(конкретизированной), membyte записывает значение
байта в адресуемую ячейку памяти, определяемую
переменными Сегмент и Смещение; адрес вычисляется как
((Сегмент * 16) + Смещение).
(вх,вх,вых)
Когда переменная Байт является свободной, membyte
читает значение байта из адресуемой ячейки памяти,
определяемой переменными Сегмент и Смещение; адрес
вычисляется как ((Сегмент * 16) + Смещение).
Неудачное Никогда не дает.
завершение
Ошибки Нет ошибок.
Пример
predicates
test_o
test_i
clauses
test_o:-
A="Добрый День",
ptr_dword(A,Seg,Off), Off1=Off+8,
membyte(Seg,Off1,CH),
writef("\nСимвол1=%c",CH).
test_i:-
str_len(S,13),
ptr_dword(S,Seg,Off), Off1=Off+8,
membyte(Seg,Off1,'Д'),
writef("\nСтрока=|%|",S).
goal
test_o, test_i.
memword/3
Назначение Читает или записывает слова из или в физическую
память
Обращение memword(Сегмент,Смещение,Слово)
Домены (integer,integer,integer)
Шаблоны описания (вх,вх,вх) , (вх,вх,вых)
аргументов
Описание (вх,вх,вх)
Когда переменная Слово является связанной
(конкретизированной), memword записывает значение
слова в адресуемую ячейку памяти, определяемую
переменными Сегмент и Смещение; адрес вычисляется как
((Сегмент * 16) + Смещение).
(вх,вх,вых)
Когда переменная Слово является свободной, memword
читает значение слова из адресуемой ячейки памяти,
определяемой переменными Сегмент и Смещение; адрес
вычисляется как ((Сегмент * 16) + Смещение).
(Значения в диапазоне от 32,768 до 65,536
представлены как отрицательные числа).
Неудачное Никогда не дает.
завершение
Ошибки Нет ошибок.
Пример
predicates
test_o test_i
clauses
test_o:-
A="Добрый день",
ptr_dword(A,Seg,Off), Off1=Off+8,
memword(Seg,Off1,Word),
bitand(Word,$ff,CH1), bitright(Word,8,CH2),
writef("\nСимвол1=%c, Символ2=%c",CH1,CH2).
test_i:-
str_len(S,13),
ptr_dword(S,Seg,Off), Off1=Off+8,
WORD='Д'+'е'*$100,
memword(Seg,Off1,Word),
writef("\nСтрока=|%|",S).
goal
test_o, test_i.
- Справочное руководство по турбо прологу 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
- Заключение