Учебное пособие по курсу «Нейроинформатика»
Шрифт:
Таким образом, использование функций приведения типов позволяет из одномерных массивов строить структуры произвольной сложности. В языках программирования, таких как C и Паскаль, существует возможность строить пользовательские типы данных. При разработке стандарта эти возможности были исключены, поскольку использование пользовательских типов, облегчая написание программ, сильно затрудняет разработку компилятора или интерпретатора, а при использовании этого языка для описания компонентов нейрокомпьютера необходимость в пользовательских типах данных возникает чрезвычайно редко. Например, при описании примеров всех компонентов, приведенных в данной работе, такая необходимость ни разу не возникла.
Операции
В данном разделе приведены все операции, которые могут быть использованы при построении выражений различного типа. В табл. 7 приведены операции, которые допустимы в целочисленных выражениях (выражениях типа Integer или Long). В табл. 8 — список, дополняющий список операций из табл. 7 до полного списка операций, допустимых в выражениях действительного типа. В табл. 9 — операции, допустимые при построении логических выражений. В табл. 10 — для выражений типа символьная строка. В табл. 3 — для выражений типа Color. Если операндом может быть любой числовой тип, то вместо перечисления всех числовых типов (Integer, Real, Long) указывается слово «числовой»
Таблица 7. Операции, допустимые в целочисленных выражениях
Приоритет | Обозначение | Тип 1-го операнда | Тип 2-го операнда | Тип результата | Название операции |
---|---|---|---|---|---|
1 | * | Integer | Integer | Integer | Умножение |
1 | * | Long | Integer | Long | Умножение |
1 | * | Integer | Long | Long | Умножение |
1 | * | Long | Long | Long | Умножение |
1 | Div | Integer | Integer | Integer | Целочисленное
|
1 | Div | Integer | Long | Long | Целочисленное деление |
1 | Div | Long | Integer | Long | Целочисленное деление |
1 | Div | Long | Long | Long | Целочисленное деление |
1 | Mod | Integer | Integer | Integer | Остаток от деления |
1 | Mod | Long | Integer | Long | Остаток от деления |
1 | Mod | Integer | Long | Long | Остаток от деления |
1 | Mod | Long | Long | Long | Остаток от деления |
2 | + | Integer | Integer | Integer | Сложение |
2 | + | Integer | Long | Long | Сложение |
2 | + | Long | Integer | Long | Сложение |
2 | + | Long | Long | Long | Сложение |
2 | – | Integer | Integer | Integer | Вычитание |
2 | – | Integer | Long | Long | Вычитание |
2 | – | Long | Integer | Long | Вычитание |
2 | – | Integer | Long | Long | Вычитание |
2 | – | Long | Integer | Long | Вычитание |
2 | – | Long | Long | Long | Вычитание |
3 | And | Integer | Integer | Integer | Побитное И |
3 | And | Long | Long | Long | Побитное И |
3 | Or | Integer | Integer | Integer | Побитное включающее ИЛИ |
3 | Or | Long | Long | Long | Побитное включающее ИЛИ |
3 | Xor | Integer | Integer | Integer | Побитное исключающее ИЛИ |
3 | Xor | Long | Long | Long | Побитное исключающее ИЛИ |
3 | Not | Integer | Integer | Integer | Побитное отрицание |
3 | Not | Long | Long | Long | Побитное отрицание |
Таблица 8. Операции, дополняющие список операций из табл. 7 до полного списка операций, допустимых в выражениях действительного типа.
Приоритет | Обозначение | Тип 1-го операнда | Тип 2-го операнда | Тип результата | Название операции |
---|---|---|---|---|---|
1 | * | Real | числовой | Real | Умножение |
1 | / | числовой | числовой | Real | Деление |
1 | RMod | числовой | числовой | Real | Остаток от деления |
2 | + | Real | числовой | Real | Сложение |
2 | – | Real | числовой | Real | Вычитание |
Таблица 9. Операции, допустимые при построении логических выражений
Приоритет | Обозначение | Тип 1-го операнда | Тип 2-го операнда | Тип результата | Название операции |
---|---|---|---|---|---|
1 | > | числовой | числовой | Logic | Больше |
1 | < | числовой | числовой | Logic | Меньше |
1 | >= | числовой | числовой | Logic | Больше или равно |
1 | <= | числовой | числовой | Logic | Меньше или равно |
1 | = | числовой | числовой | Logic | Равно |
1 | <> | числовой | числовой | Logic | Не равно |
2 | And | Logic | Logic | Logic | Логическое И |
2 | Or | Logic | Logic | Logic | Логическое включающее ИЛИ |
2 | Xor | Logic | Logic | Logic | Логическое исключающее ИЛИ |
2 | Not | Logic | Logic | Logic | Логическое отрицание |
Таблица 10. Операции для выражений типа символьная строка
Приоритет | Обозначение | Тип 1-го операнда | Тип 2-го операнда | Тип результата | Название операции |
---|---|---|---|---|---|
1 | + | String | String | String | Конкатенация (сцепка) строк. |
Во всех таблицах операции размещаются по убыванию приоритета. Для каждой операции указаны допустимые типы операндов, и тип результата, в зависимости от типов операндов.
В табл. 8 приводится необычная операция RMod — остаток от деления действительных чисел. Результат этой функции равен разности между первым операндом и вторым операндом, умноженным на целую часть отношения первого операнда ко второму.
Кроме операций, приведенных в табл. 3 и табл. 7–10, определены две взаимно обратные операции для работы с адресами и указателями:
^ — ставится после переменной типа указатель. Означает, что вместо указателя в выражении используется переменная или массив, на который указывает этот указатель. Не допускается после переменных типа Pointer.
@ — ставится перед именем переменной любого типа. Означает, что в выражении участвует не переменная, а адрес переменной. Используется при присвоении адресов переменных или массивов переменным типа указатель.
Предопределенные константы
При описании различных компонентов возникает необходимость в использовании некоторого набора стандартизированных констант. Стандартность набора констант особенно необходима при обмене между компонентами. Все константы, приведенные в табл. 11, описываются в тех разделах, где они используются. В табл. 11 для каждой константы указывается ее тип, значение и названия разделов, в которых она описывается.
Таблица 11. Предопределенные константы