logo
TurboProlog / Документация / TOM_2

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 Решение