Инструменты пользователя

Инструменты сайта


examination:flp:question59

Содержание

makewindow

Предикат makewindow является основой всех операций над окнами в Прологе. Его общий вид:

  makewindow(<номер окна>, <атрибуты окна>, <атрибуты рамки>,
   <заголовок окна>, <начальный номер строки>,
   <начальный номер столбца>, <высота окна>, <ширина окна>). 

Значения восьми параметров определяют характеристики окна.

Параметр номер окна, целое число, идентифицирует окно в программе. Это число используется в качестве ссылки на окно, в частности, предикатом gotowindow.

Целочисленное значение, присвоенное аргументу атрибуты окна, определяет цвета символов и фона. Выбираемые значения зависят от того, какой монитор используется - цветной или монохромный.

Приведем значения этого аргумента для цветного экрана (таблицы 1 и 2).

Таблица 1.Цвета текста 
Значение  \ Цвет  \ Значение  \ Цвет
0	     Черный	8	Серый
1	     Синий	9	Светло-синий
2	     Зеленый	10	Светло-зеленый
3	     Голубой	11	Светло-голубой
4	     Красный	12	Светло-красный
5	     Фиолетовый	13	Светло-фиолетовый
6	     Коричневый	14	Желтый
7	     Белый	15	Интенсивно-белый
Таблица 2. Цвета фона 
Значение	Цвет	Значение Цвет
0	        Черный	64	Красный
16	        Синий	80	Фиолетовый
32	        Зеленый	96	Коричневый
48	        Голубой	112	Белый

Чтобы вычислить значение этого параметра для различных комбинаций цветов, прежде всего выберите необходимый цвет текста и цвет фона. Затем сложите соответствующие значения атрибутов. Если вы хотите, чтобы символы мерцали, прибавьте к результирующему значению 128. Вычисленное значение используется как второй аргумент в предикате makewindow.

Например, чтобы создать окно с белыми символами на черном фоне, сложите 7 (белый текст) и 0 (черный фон). Их сумма 7 является значением этого аргумента для предиката makewindow. Чтобы создать окно с красными символами на желтом фоне, сложите 4 (красный текст) и 104 (желтый фон), результат будет 108. Чтобы создать окно с синими символами на бледно красном фоне, сложите 1 (синий текст) и 12 (бледно красный фон). Их сумма - 41, используется как второй аргумент рассматриваемого предиката.

Выбор рамки окна. Третий аргумент предиката makewindow есть целое число, значение которого определяет рамку окна. Если значение атрибута равно 0, то окно не имеет видимой границы. Другие значения определяют рамку окна с параметрами, указанными в таблице 3.

Часть значений атрибута рамки окна задает ее цвет. Это делается аналогично заданию значения атрибута экрана. Если задается мерцающая граница, то она всегда будет белой, с мерцающей тонкой линией (в середине границы), имеющей указанный цвет.

Таблица 3. Цвета рамки 
окна Значение	Вид рамки окна	Значение	Вид рамки окна
0	Нет рамки	-1	Мерцающая белая рамка
1	Синяя рамка	-2	Мерцающая желтая рамка
2	Зеленая рамка	-3	Мерцающая фиолетовая рамка
3	Светло-синяя р.	-4	Мерцающая красная рамка
4	Красная рамка	-5	Мерцающая светло-синяя рамка
5	Фиолетовая рам.	-6	Мерцающая светло-зеленая рамка
6	Желтая рамка	-7	Мерцающая синяя рамка
7	Белая рамка	-8	Мерцающая серая рамка
8	Коричневая рамка	-	-

Аргумент Заголовок окна задает метку окна. Например, меткой окна может быть «Главное Меню», «Столбиковая Диаграмма», «Вспомогательное Меню» и т.п. Строка, задаваемая в качестве значения этого атрибута будет размещена в центре верхней линии рамки окна. Значение метки окна также может быть не определено, что соответствует отсутствию метки. В этом случае вводится аргумент, состоящий из двух последовательных знаков кавычки.

Определение размеров и положения окон. Аргумент начальный номер строки предиката makewindow есть целое число, определяющее верхнюю строку (линию) создаваемого окна. Максимальное количество строк, умещающихся на экране, 25. Значение 4 указывает, что окно начинается с четвертой строки. Для рассматриваемого аргумента можно использовать значения от 0 до 24.

Аргумент Начальный номер столбца предиката makewindow есть целое число, указывающее крайний левый столбец окна. Максимальное число столбцов, умещающихся на экране, 80 (от 0 до 79).

Аргумент Высота окна есть целое число, определяющее количество строк, занимаемых создаваемым окном. Максимально возможное значение аргумента 25.

Аргумент Ширина окна есть целое число, указывающее число столбцов, занимаемых окном. Максимальное значение аргумента 80.

Если случайно будут указаны такие значения номера верхней строки и размера окна по вертикали, что нижняя строка окна окажется за нижней границей экрана, Пролог сообщит об ошибке следующим образом: The parameters in makewindow are illegal. Приведем несколько примеров использования этого предиката:

makewindow(1,7,7,«Полный экран»,0,0,25,80) - данному окну присвоен номер 1. Символы в нем будут белые, фон черный, рамка белая и метка окна - «Полный экран». Верхний левый угол окна находится на строке 0, столбце 0, а само окно имеет 25 строк и 80 столбцов;

makewindow(2,4,1,«Меню»,4,20,16,40) - этому окну присвоен номер 2. Оно имеет метку «Меню». Символы в нем красные на черном фоне, и ограничено оно синей рамкой. Окно начинается с 4-й строки и 20-го столбца, имеет 16 строк и 40 столбцов.

Если какие-то аргументы предиката makewindow являются неопределенными переменными, то им присваиваются значения параметров текущего окна.Меню

mod

Функция mod вычисляет остаток от деления X на Y (где X и Y - целые).

 X mod Y % (i,i)

Выражение Z=X mod Y ставит в соответствие Z результат - остаток от деления X на Y. Например:

 Z=7 mod 4  %Z будет равно 3
 Y=4 mod 7  % Y будет равно 4

membyte

Читает или записывает байты в или из памяти

(i, i) When Byte is bound, membyte stores the value of the byte at the memory address Ptr.

(i, o) When Byte is free, membyte reads the value of the byte at the memory address Ptr.

memword

То же самое, что и membyte, только для words

examination/flp/question59.txt · Последние изменения: 2014/01/15 12:17 (внешнее изменение)