Миркес Е. М.
Шрифт:
Отображаемый элемент. Переменные типа 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. |