Initgraph/5 Графика
Назначение Инициализирует графическую систему
Обращение initgraph(ГрафДрайвер,ГрафРежим,
НовДрайвер,НовРежим,Путькдрайверу)
Домены (integer,integer,integer,integer,string)
Шаблоны описания (вх,вх,вых,вых,вх)
аргументов
Описание initgraph инициализирует графическую систему для
загрузки графического драйвера с диска (или
определяет уже загруженный драйвер) и переводит
систему в графический режим.
initgraph связывает переменные НовДрайвер и НовРежим
с фактически загруженным графическим драйвером и
графическим режимом. Вы можете указать использование
определенного графического драйвера и режима или
автоматически определить и загрузить графический
драйвер во время выполнения программы.
Если вы вызвали initgraph для автоматического
определения графического драйвера, то он вызовет
detectgraph для выбора графического драйвера и
режима. initgraph также устанавливает все значения
графики по умолчанию (текущую позицию, палитру, цвет,
окно и т.д.).
Обычно, initgraph в первую очередь распределяет
доступную память для графического драйвера, а потом
загружает соответствующий .BGI файл с диска. В
качестве альтернативы такой динамической схемы можно
компоновать графический драйвер вместе с загрузочным
файлом вашей программы.
Переменная ПутькДрайверу описывает каталог, в котором
initgraph ищет графический драйвер (.BGI файл) для
загрузки. Если необходимый драйвер не найден, то
повторяется поиск в текущем каталоге.
Соответственно, если ПутькДрайверу пустой (""), файлы
драйверов (*.BGI) должны быть в текущем каталоге.
Графдрайвер есть целое число, определяющее
графический драйвер.
Вы можете использовать символьные константы,
описанные в GRAPDECL.PRO, вместо чисел:
-----------------------------------------------------
Константа Значение
-----------------------------------------------------
DETECT 0 (автоматическое определение)
CGA 1
MCGA 2
EGA 3
EGA64 4
EGAMONO 5
IBM8514 6
HERCMONO 7
ATT400 8
VGA 9
PC3270 10
-----------------------------------------------------
ГрафРежим есть целое число, определяющее начальный
графический режим, если только в ГрафДрайвере не
указан detect (в этом случае выбирается наибольшая
разрешающая способность выбранного драйвера).
Вы можете использовать символьные константы,
описанные в GRAPDECL.PRO, вместо чисел для описания
графического режима:
-----------------------------------------------------------------
Графический Графический Колонка
драйвер режим Знач. x строка Палитра Страницы
-----------------------------------------------------------------
CGA CGAC0 0 320x200 С0 1
CGAC1 1 320x200 С1 1
CGAC2 2 320x200 С2 1
CGAC3 3 320x200 C3 1
CGAHI 4 640x200 2 цвета 1
MCGA MCGAC0 0 320x200 С0 1
MCGAC1 1 320x200 С1 1
MCGAC2 2 320x200 С2 1
MCGAC3 3 320x200 С3 1
MCGAMED 4 640x200 2 цвета 1
MCGAHI 5 640x480 2 цвета 1
EGA EGALO 0 640x200 16 цветов 4
EGAHI 1 640x350 16 цветов 2
EGA64 EGA64LO 0 640x200 16 цветов 1
EGA64HI1 640x350 4 цвета 1
EGAMONO EGAMONOHI 3 640x350 2 цвета 1*
EGAMONOHI 3 640x350 2 цвета 2**
IBM8514IBM8415LO0 640x480 256 цветов 1
IBM8415НI0 1024x768 256 цветов 1
HERC HERCMONOHI 0 720x348 2 цвета 2
ATT400 ATT400C0 0 320x200 C0 1
ATT400C1 1 320x200 C1 1
ATT400C2 2 320x200 C2 1
ATT400C3 3 320x200 C3 1
ATT400MED 4 640x200 2 цвета 1
ATT400HI 5 640x400 2 цвета 1
VGA VGALO 0 640x200 16 цветов 2
VGAMED 1 640x350 16 цветов 2
VGAHI 2 640x480 16 цветов 1
VGAXLO
PC3270 PC3270HI 0 720x350 2 цвета 1
* 64K на EGAMONO карте
** 256K на EGAMONO карте
-----------------------------------------------------------------
Палитры С0, С1, С2 и С3 ссылаются на четыре заранее
определенные четырехцветные палитры для режима CGA
или с ним совместимого. Вы можете выбрать любой цвет
фона (вход #0) в каждой из этих палитр, но другие
цвета будут постоянными.
Эти палитры, более подробно описанные в Руководстве
Пользователя Турбо Пролога, представлены в следующей
таблице:
-----------------------------------------------------
Номер ц в е т а в п а л и т р е
палитры 1 2 3
-----------------------------------------------------
0 ярко-зеленый розовый желтый
1 ярко-голубой малиновый белый
2 зеленый красный коричневый
3 голубой фиолетовый светло-серый
-----------------------------------------------------
initgraph связывает переменные НовДрайвер и НовРежим
с фактическими текущим графическим драйвером и
текущим графическим режимом.
Ошибки Возможны ошибки со следующими кодами:
6001 Невозможно определить графическую карту
6002 Невозможно найти файл драйвера
6003 Неправильный драйвер
6004 Не хватает памяти для загрузки драйвера
Смотри closegraph,detectgraph,getgraphmode,restorecrtmode
Пример
include "GRAPDECL.PRO"
predicates
Demo
Demo2
Convertmode(Integer,Integer)
Error(Integer)
clauses
demo:-Trap(demo2,E,error(E)).
demo2:- detectgraph(GraphDriver,GraphMode),
writef(
"Определен графический драйвер % режим % \n",
GraphDriver,GraphMode),
readchar(_),
convertmode(GraphMode,NewMode),
initgraph(GraphDriver,NewMode,_,_, ""),
getmaxx(X),
X2=X div 2,
getmaxy(Y),
bar(0,0,X2,Y),
readchar(_),
closegraph.
convertmode(egaHi,egaLo):-!.
/* Переключает, если режим EGA определен */
convertmode(Mode,Mode).
error(E):-
write("\nОшибка во время выполнения:",E),
errormsg("prolog.err",E,Msg,ExtraHlp),
write("\n",Msg,"\n",ExtraHlp),
flush(keyboard),
readchar(_),
exit(1).
goal
Demo.
inkey/1
Назначение Читает символ из текущего устройства ввода, если оно
доступно
Обращение inkey(Знак)
Домены (char)
Шаблоны описания (вых)
аргументов
Описание inkey читает единственный символ из текущего
устройства ввода, если оно доступно. Если символ не
имеется в наличии, inkey несогласуется. На практике,
когда символы являются связанными (например, с
клавиатурой) это значит, что для того, чтобы inkey
согласовался, пользователь сначала должен их набрать.
Неудачное Если клавиша не нажималась.
завершение
Ошибки Нет ошибок.
Пример predicates
wait(char)
test(string)
clauses
wait(X) :- inkey(Y), X=Y, !.
wait(X) :- write(X), wait(X).
test(W) :- frontchar(W, Ch, R),!,wait(Ch),write(Ch),
test(R).
test(_).
goal
makewindow(2, 7, 7, "Нажать сейчас клавишу",
0, 5, 8, 70),
makewindow(1, 7, 7, "Понятые буквы",
8, 10, 10, 60),
Word = "Петя Петров рисует картину",
write("пожалуйста введите :\n\t", Word, "\n\t"),
shiftwindow(2),
time(0, 0, 0, 0), test(Word), time(_, _, S, H),
shiftwindow(1),
write("\nВы нашли за ", S,
" секунд и ", H, " милисекунд").
isname/1
Назначение Проверяет, является ли строка идентификатором
Обращение isname(ПерСтроки)
Домены (string)
Шаблоны описания (bx)
аргументов
Описание isname согласуется, если ПерСтроки является
<идентификатором>, соответствующим синтаксису Турбо
Пролога.
Идентификатором является любая последовательность
букв (латинских), цифр и символов подчеркивания,
начинающаяся с буквы или символа подчеркивания.
Неудачное Не согласуется, если ПерСтроки не может быть
завершение классифицирована как идентификатор согласно
правилам для переменных Турбо Пролога.
Ошибки Нет ошибок.
Пример Goal: isname("Дан")
Yes
Goal: isname("2Лео")
No
Goal: isname("_Джон")
No
Goal: isname("одна_строка")
Yes
Goal: isname("_")
Yes
Goal: isname("абсд1ф2")
Yes
- Справочное руководство по турбо прологу 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
- Заключение