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

Setwritemode/1 Графика

Назначение Устанавливает режим рисования линий

Обращение setwritemode(РисРежим)

Домены (integer)

Шаблоны описания (вх)

аргументов

Описание setwritemode описывает, как графические предикаты

будут рисовать линии на экране. Если РисРежим = 0,

то цвет рисуемых линий будет накладываться на

изображение на экране. Если РисРежим = 1, то цвет

рисуемых линий будет смешиваться с изображением на

экране.

GRAPDECL.PRO определяет две константы, которые вы

можете использовать для РисРежим:

-----------------------------------------------------

Имя Значение Описание

-----------------------------------------------------

COPY_PUT 0 цвет рисуемых линий будет

накладываться на изображение

на экране

XOR_PUT 1 цвет рисуемых линий будет

смешиваться с изображением

на экране

-----------------------------------------------------

shiftwindow/1

Назначение Переключает активное окно или возвращает номер

текущего окна

Обращение shiftwindow(НомОкна)

Домены (integer)

Шаблоны описания (вх) , (вых)

аргументов

Описание (вх)

Изменяет текущее окно с номером, определенным в

НомОкна. (Содержимое предыдущего активного окна и

позиция курсора в нем сохранились). Новое текущее

окно будет создано заново в том случае, когда оно

было стерто с момента его последней активизации.

(вых)

Связывает переменную НомОкна с номером текущего окна

Неудачное Никогда не дает.

завершение

Ошибки 1005 Ссылка на неизвестное окно.

Пример

goal

makewindow(1, 7, 7, " Окно 1 ", 0, 0, 25, 40),

makewindow(2, 7, 7, " Окно 2 ", 0, 40, 25, 40),

makewindow(3, 7, 7, " Окно 3 ", 0, 0, 12, 80),

makewindow(4, 7, 7, " Окно 4 ", 12, 0, 13, 80),

shiftwindow(1),

write("Это #1!\n\nНажмите любую клавишу"),

readchar(_),

shiftwindow(2),

write("Сейчас вы находитесь в окне #2.

\nЧто затем?\n\nНажмите любую клавишу."),

readchar(_),

shiftwindow(3),

write("Вот что затем; окно #3.

\nНажмите любую клавишу."),

readchar(_),

shiftwindow(4),

write("Сейчас мы можем записать в окно #4.\n

\nНажмите любую клавишу для продолжения."),

readchar(_),

shiftwindow(1),

write("\n\nЭто все !").

snowcheck/1

Назначение Управляет состоянием белого фона CGA

Обращение snowcheck(Status)

Домены (string)

Шаблоны описания (вх) , (вых)

аргументов

Описание snowcheck читает или устанавливает статус белого фона

на видео выходе для карты CGA.

snowcheck(on) Состояние белого фона вкл.

snowcheck(off) Состояние белого фона выкл.

snowcheck(Status) Возвратить состояние белого фона.

Неудачное Никогда не дает.

завершение

Ошибки Нет ошибок.

Пример

predicates

checksnow(STRING)

setsnow(CHAR)

testwrite(INTEGER)

clauses

checksnow(on):-!,

snowcheck(off),

testwrite(1000),

write("\nВы видите белый фон на вашем экране ?"),

readchar(ANS),

setsnow(ANS).

checksnow(off):-!,

testwrite(1000),

write("\nВы видите белый фон на вашем экране ?"),

readchar(ANS),

setsnow(ANS).

setsnow('y'):-snowcheck(on).

setsnow('Y'):-snowcheck(on).

setsnow(_).

testwrite(0):-!.

testwrite(N):-

makewindow(_,_,_,_,_,_,ROWS,COLS),

RR=ROWS-1, CC=COLS-1,

random(RR,X),random(CC,Y),

scr_char(X,Y,CH), scr_char(X,Y,CH),

N1=N-1,

testwrite(N1).

goal

snowcheck(OLDSTATUS),

write("\nСостояние вашего белого фона :",

OLDSTATUS),

checksnow(OLDSTATUS).

sound/2

Назначение Производит звуковой сигнал в динамике компьютера

Обращение sound(Продолжит,Част)

Домены (integer,integer)

Шаблоны описания (вх,вх)

аргументов

Описание sound воспроизводит через динамик звуковой сигнал

с частотой = Част , продолжительностью = Продолжит

сотых долей секунд.

Неудачное Никогда не дает.

завершение

Ошибки Нет ошибок.

Пример

predicates

tune(char)

clauses

tune('e') :- !, sound(100, 165).

tune('a') :- !, sound(100, 220).

tune('d') :- !, sound(100, 294).

tune('g') :- !, sound(100, 392).

tune('b') :- !, sound(100, 494).

tune('h') :- !, sound(100, 660).

tune(_) :-

clearwindow,

write("Эту ноту я не могу сыграть!\n\n",

"Нажмите любую клавишу для продолжения."),

readchar(_), clearwindow, fail.

goal

makewindow(1,7,7," МЕЛОДИЯ ГИТАРЫ ",0,0,25,80),

write("Эта программа поможет вам настроить вашу

гитару.\n\n"),

write("Пожалуйста, введите ноту, вы услышите

звук"," (e, a, d, g, b, or h for high e): "),

readchar(Tune),

upper_lower(Tune, Tune1),

tune(Tune1).

storage/3

Назначение Возвращает размер участков памяти

Обращение storage(Стек,Динобл,Трейл)

Домены (real,real,real)

Шаблоны описания (вых,вых,вых)

аргументов

Описание storage возвращает размеры трех областей памяти -

стека, динамической области, трейла, используемых

программой.

Для стека и трейла storage возвращает фактическое

количество используемой ими памяти. Это количество

всегда будет меньшим, чем размеры, установленные

соответствующими директивами компилятора. Для

динамической области, storage возвращает количество

свободной памяти, имеющейся в распоряжении. Все

переменные измеряются в байтах.

Неудачное Никогда не дает.

завершение

Ошибки Нет ошибок.

Пример

database

fact(string)

predicates

test

wstor(STRING)

clauses

wstor(TXT):-

storage(Stack, Heap, Trail),

write(TXT,":\n"),

write("Размер Стека=",Stack, ", Размер Дин обл=",

Heap, ", Размер трейла=", Trail),

readchar(_), nl.

test:-

wstor("После вызова теста"),fail.

test:-

file_str("prolog.err", FILE),

wstor("После загрузки в GСтек"),

assert(fact(FILE)),

wstor("После уничтожения файла"),

fail.

test:-wstor("После неудачного выполнения").

goal

makewindow(1, 7, 7, " ПАМЯТЬ ", 0, 0, 20, 80),

wstor("Перед вызовом теста"),

test,

wstor("После выхода из теста").

str_char/2

Назначение Выполняет преобразование (обращение) между

строкой с единственным символом и символом

Обращение str_char(ПарамСтр,ПарамСимв)

Домены (string,char)

Шаблоны описания (вх,вых) , (вых,вх) , (вх,вх)

аргументов

Описание (вых,вх)

Связывает ПарамСтр со строкой, содержащей символ,

описанный ПарамСимв.

(вх,вых)

Связывает ПарамСимв с единственным символом,

содержащимся в строке, с которой связан ПарамСтр.

(вх,вх)

Согласуется, если ПарамСимв и ПарамСтр являются оба

связанными с представлением некоторого символа.

Неудачное Варианты потоков (вх,вых) и (вх,вх) всегда будут

завершение несогласованными, если ПарамСтр не содержит точно

один символ.

Ошибки Нет ошибок.

Пример

Goal: str_char("A",CH)

CH=A

1 Solution

Goal: str_char(STR,'A')

STR=A

1 Solution

Goal: str_char("A",'A')

Yes

Goal: str_char("AB",CH)

No Solution

Goal: str_char("B",'A')

No

str_int/2

Назначение Выполняет преобразование (обращение) между строкой и

целым числом

Обращение str_int(ПарамСтр,ПарамЦел)

Домены (string,integer)

Шаблоны описания (вх,вых) , (вых,вх) , (вх,вх)

аргументов

Описание (вых,вх)

Связывает ПарамСтр со строкой десятичных цифр,

представляющих значение, с которым связан ПарамЦел.

(вх,вых)

Связывает ПарамЦел с внутренним (двоичным)

эквивалентом десятичного числа, с котором связан

ПарамСтр.

(вх,вх)

Согласуется, если ПарамЦел является связанным с

внутренним (бинарным) представлением десятичного

целого, которое связано с ПарамСтр.

Неудачное Варианты потоков (вх,вых) и (вх,вх) будут

завершение несогласованными, если ПарамСтр не образует

правильное целое. В начале строки знак необязателен,

начальные пробелы игнорируются.

Ошибки Нет ошибок.

Пример

Goal: str_int("123",INT)

INT=123

1 Solution

Goal: str_int(STR,123)

STR=123

1 Solution

Goal: str_int("123",123)

Yes

Goal: str_int(" -123 ",INT)

INT=-123

1 Solution

Goal: str_int(" -1x23 ",INT)

No Solution

str_len/2

Назначение Возвращаеет длину строки

Обращение str_len(Стр,Длн)

Домены (string,integer)

Шаблоны описания (вх,вх) , (вх,вых) , (вых,вх)

аргументов

Описание (вх,вх)

Согласуется, если строка Стр имеет длину Длн

символов.

(вх,вых)

Согласуется путем связывания переменной Длн с

количеством символов в строке Стр.

(вых,вх)

Возвращает строку, состоящую из Длн пробелов.

Неудачное Никогда не дает.

завершение

Ошибки Нет ошибок.

Пример

Goal: str_len("abc",Len)

Len=3

1 Solution

Goal: str_len("abc",3)

Yes

Goal: str_len(STR,15),writef("|%|\n",STR)

| |

STR=

1 Solution

str_real/2

Назначение Выполняет преобразование (обращение) между строкой и

вещественным числом

Обращение str_real(ПарамСтр,ПарамВещ)

Домены (string,real)

Шаблоны описания (вх,вых) , (вых,вх) , (вх,вх)

аргументов

Описание (вх,вых)

Связывает ПарамВещ с внутренним (IEEE) эквивалентом

десятичного вещественного числа, с которым связан

ПарамСтр.

(вых,вх)

Связывает ПарамСтр со строкой десятичных цифр,

представляющих значение, с которым связан ПарамВещ.

(вх,вх)

Согласуется, если ПарамВещ является связанным с

внутренним (бинарным) представлением десятичного

вещественного числа, представленного строкой, которая

связана с ПарамСтр.

Неудачное Варианты потоков (вх,вых) и (вх,вх) будут

завершение несогласованными, если ПарамСтр не образует

правильное десятичное число с плавающей точкой.

Ошибки Нет ошибок.

Пример

Goal: str_real("23456789079856",REAL)

REAL=2.345678908E+13

1 Solution

Goal: str_real(STR,-123234.453E-99)

STR=-1.23234453E-94

1 Solution

system/1

Назначение Выполняет команду DOS

Обращение system(СтрКомДос)

Домены (string)

Шаблоны описания (вх)

аргументов

Описание Посылает СтрКомДос DOS для выполнения. Если строка

является пустой (""), введение команд DOS

выполняется в диалоговом режиме.

Неудачное Никогда не дает.

завершение

Ошибки 1013 Неудача в вызове 'system'.

1024 Ошибка, образованная внешней программой.

2011 Невозможно выполнить предикат 'system'.

Пример

goal

makewindow(1, 7, 0, " System ", 0, 0, 25, 80),

write("\nВы можете сейчас выйти в DOS и

возвратиться ",

"\nназад в пролог, введя exit или нажав ENTER.",

"\nУспехов вамk\n\n"),

unreadchar('w'),unreadchar('/'),unreadchar(' '),

unreadchar('r'),unreadchar('i'),unreadchar('d'),

system(""),

write("\nНажмите любую клавишу для продолжения"),

readchar(_), clearwindow,

write("Мы будем сейчас печатать файл:PROLOG.ERR.\n",

"Вы можете остановить просмотр нажав вместе

<CTRL-S>.\n",

"или прекратить выполнение, используя

<CTRL-BREAK>."),

readchar(_), clearwindow,

system("type c:\\prolog\\prolog.err"),

write("Это все!"),

readchar(_).

system/3

Назначение Выполняет команду DOS и возвращает номер ошибки

Обращение system(СтрКомДос,ВостИзобр,НомОшибки)

Домены (string,integer,integer)

Шаблоны описания (вх,вх,вых)

аргументов

Описание Посылает СтрКомДос DOS для выполнения, как в

system/1.

СтрКомДос Имя команды DOS или внешней программы.

ВостИзобр Описывает, будет ли ваша программа

восстанавливать экран в состояние, в

котором он был перед выполнением

СтрКомДос.

0= Не приводить в исходное состояние.

1= Приводить в исходное состояние.

НомОшибки Код выхода для выполненной программы.

Неудачное Никогда не дает.

завершение

Ошибки 1013 Неудача в вызове 'system'.

1024 Ошибка, образованная внешней программой.

2011 Невозможно выполнить предикат 'system'.

Пример

goal

makewindow(1, 7, 0, " System ", 0, 0, 25, 80),

write("Если вы имеете EGA карту и файл

ega43.com существует",

"мы попытаемся вывести вам в 43-строчной форме "),

unreadchar('\13'),unreadchar('t'),

unreadchar('i'),unreadchar('x'),unreadchar('e'),

unreadchar('\13'),unreadchar('3'),unreadchar('4'),

unreadchar('a'),unreadchar('g'),unreadchar('e'),

system("",0,ErrorLevel),

write("\nУровеньОшибки=",ErrorLevel),

readchar(_).