Миркес Е. М.
Шрифт:
Отображаемый элемент. Переменные типа visual (отображаемый элемент) Служат для адресации отображаемых элементов в интерфейсных функциях. Тип значений зависит от реализации библиотеки интерфейсных функций и не может изменяться пользователем иначе, чем через вызов интерфейсной функции. Особо следует отметить, что библиотека интерфейсных функций не является частью ни одного из компонентов.
Переменные типа цвет и операции с цветами
Использование цветов позволяет гибко разбивать множества на подмножества. В нейрокомпьютере возникает необходимость в разбиении на подмножества (раскрашивании) задачника. В этом разделе описывается стандарт работы с переменными типа цвет.
Переменная типа цвет представляет собой двухбайтовое беззнаковое целое. Однако основное использование предполагает работу не как с целым числом, а как с совокупностью однобитных флагов. При записи на диск используется символьное представление двоичной записи числа с ведущими нулями и разбиением на четверки символом «.» (точка), предваряемая заглавной буквой «B» латинского алфавита, или символьное представление шестнадцатеричной записи числа с ведущими нулями, предваряемая заглавной буквой «H» латинского алфавита. В табл. 2 приведена нумерация флагов (бит) переменной типа Color, их шестнадцатеричное, десятичное и дво ичное значение. При использовании в учителе или других компонентах может возникнуть необходимость в присвоении некоторым из флагов или их комбинаций имен. На такое именование не накладывается никаких ограничений, хотя возможно будет выработан стандарт и на названия часто используемых цветов (масок, совокупностей флагов).
Таблица 2. Нумерация флагов (бит) переменной типа Color
Номер | Шестнадцатиричная запись | Десятичная запись | Двоичная запись |
---|---|---|---|
0 | H0001 | 1 | B.0000.0000.0000.0001 |
1 | H0002 | 2 | B.0000.0000.0000.0010 |
2 | H0004 | 4 | B.0000.0000.0000.0100 |
3 | H0008 | 8 | B.0000.0000.0000.1000 |
4 | H0010 | 16 | B.0000.0000.0001.0000 |
5 | H0020 | 32 | B.0000.0000.0010.0000 |
6 | H0040 | 64 | B.0000.0000.0100.0000 |
7 | H0080 | 128 | B.0000.0000.1000.0000 |
8 | H0100 | 256 | B.0000.0001.0000.0000 |
9 | H0200 | 512 | B.0000.0010.0000.0000 |
10 | H0400 | 1024 | B.0000.0100.0000.0000 |
11 | H0800 | 2048 | B.0000.1000.0000.0000 |
12 | H1000 | 4096 | B.0001.0000.0000.0000 |
13 | H2000 | 8192 | B.0010.0000.0000.0000 |
14 | H4000 | 16384 | B.0100.0000.0000.0000 |
15 | H8000 | 32768 | B.1000.0000.0000.0000 |
Таблица 3. Предопределенные константы операций с переменными типа Цвет (Color)
Код | Обозначение | Вычисляемое выражение | Тип результата | Пояснение |
---|---|---|---|---|
1 | CEqual | A=B | Logic | Полное совпадение. |
2 | CIn | A And B = A | Logic | A содержится в В. |
3 | CInclude | A And B = B | Logic | А содержит В. |
4 | CExclude | A And B = 0 | Logic | A и В взаимоисключающие. |
5 | CIntersect | A And B <> 0 | Logic А и В пересекаются. | |
6 | COr | A Or B | Сolor | Побитное включающее или. |
7 | CAnd | A And B | Color | Побитное и. |
8 | CXor | A Xor B | Color | Побитное исключающее или |
9 | CNot | Not A | Color | Побитное отрицание |
В табл. 3 приведены операции с переменными типа Color. Первые пять операций могут использоваться только для сравнения переменных типа Color, а остальные четыре операции — для вычисления выражений типа Color.
В ряде запросов необходимо указать тип операции над цветом. Для передачи таких параметров используется переменная типа Integer. В качестве значений передается содержимое соответствующей ячейки столбца код табл. 3.
Приведение и преобразование типов
Есть два пути использовать переменную одного типа как переменную другого типа. Первый путь состоит в преобразовании значения к заданному типу. Так, для преобразования целочисленной переменной к действительному типу, достаточно просто присвоить переменной действительного типа целочисленное значение. С обратным преобразованием сложнее, поскольку не ясно что делать с дробной частью. В табл. 4 приведены все типы, которые можно преобразовать присваиванием переменной другого типа. В табл. 5 приведены все функции преобразования типов.
Таблица 4. Преобразование типов прямым присваиванием переменной значения выражения
Тип переменной | Тип выражения | Пояснение |
---|---|---|
Real | Real, Integer, Long | Значение преобразуется к плавающему виду. При преобразовании значения выражения типа Long возможна потеря точности. |
Long | Integer, Long | При преобразовании типа Integer, действуют следующие правила. Значение переменной помещается в два младших байта. Если значение выражения больше либо равно нолю, то старшие байты равны H0000, в противном случае старшие байты равны HFFFF. |
Integer | Integer, Long | При преобразовании выражения типа Long значение двух старших байт отбрасывается. |
Таблица 5. Функции преобразования типов
Имя функции | Тип аргумента | Тип результата | Описание |
---|---|---|---|
Real | Real, Integer, Long | Real | Аналогично прямому присваиванию |
Integer | Integer, Long | Integer | Аналогично прямому присваиванию |
Long | Integer, Long | Long | Аналогично прямому присваиванию |
Str | Real, Long, Integer | String | Представляет числовой аргумент в виде символьной строки в десятичном виде |
Round | Real | Long | Округляет действительное значение до ближайшего длинного целого. Если значение действительного выражения выходит за диапазон длинного целого, то результат равен нулю. |
Truncate | Real | Long | Преобразует действительное значение в длинное целое путем отбрасывания дробной части. Если значение действительного выражения выходит за диапазон длинного целого, то результат равен нулю. |
LVal | String | Long | Преобразует длинное целое из символьного представления во внутреннее. |
RVal | String | Real | Преобразует действительное число из символьного представления во внутреннее. |
StrColor | Color | String | Преобразует внутреннее представление переменной типа Color в соответствии с разд. «Значение переменной типа цвет» |
ValColor | String | Color | Преобразует символьное представление переменной типа Color во внутреннее. |
Color | Integer | Color | Интерпретирует целое число как значение типа Color. |