Эта конструкция служит для задания значений параметрам (статическим переменным) компонентов. Для компонента сеть она может встречаться не только при описании главной сети, но и при описании любой составной подсети. В специальных выражениях типа Тип могут участвовать только стандартные функции и аргументы той структурной единицы, в которой находится блок задания значений статическим переменным. При этом специальное выражение, задающее значение параметра должно иметь тип, совместимый с типом статической переменной, которой присваивается это значение.
<Установление параметров Структурной единицы> ::= <Однозначное имя Структурной единицы> [[[<Переменная цикла>:] <Начальный номер> [..<Конечный номер> [:<Шаг>] ]]] SetParameters <Список значений параметров>
<Переменная цикла> ::= <Идентификатор>
<Начальный номер> ::= <Константное выражение типа Long>
<Конечный номер> ::= <Константное выражение типа Long>
<Шаг> ::= <Константное выражение типа Long>
<Список значений параметров> ::= <Значение параметра> [,<Список значений параметров>]
<Значение параметра> ::= <Специальное выражение типа Тип>
<Специальное выражение типа Тип> ::= [<Префиксная операция типа Тип>] <Специальный операнд типа Тип> [<Операция типа Тип> <Специальный операнд типа Тип>]
<Специальный операнд типа Тип > ::= {<Специальное выражение типа Тип > ½ <Константа типа Тип> ½ <Переменная цикла> ½ (<Специальное выражение типа Тип > ½ <Аргумент типа Тип> ½ <Вызов функции типа Тип>)}
Синтаксические конструкции описания распределения сигналов или параметров:
Данная конструкция имеет четыре аргумента, имеющих следующий смысл:
Данное – сигнал или параметр.
Объект – предобработчик, интерпретатор, оценка, сеть.
Подобъект – частный предобработчик, частный интерпретатор, частная оценка, подсеть.
<Идентификатор данных> – одно из ключевых слов Signals, Parameters, Data, InSignals, OutSignals.
<Описание распределения Данных, Объекта, Подобъекта, <Идентификатор данных>> ::= Connections <Описание групп соответствий Данных>
<Описание групп соответствий Данных> ::= <Описание группы соответствий Данных> [;<Описание групп соответствий Данных>]
<Описание группы соответствий Данных> ::= <Блок сигналов Подобъекта> <=> {<Блок сигналов Объекта> ½ <Блок сигналов Подобъекта>}
<Блок сигналов Подобъекта> ::= <Описатель сигналов Подобъекта> [;<Блок сигналов Подобъекта>]
<Описатель сигналов Подобъекта> ::= { For <Переменная цикла> = <Начальный номер> To <Конечный номер> [Step <Шаг>] Do <Блок сигналов Подобъекта> End ½ <Список Данных Подобъекта>}
<Список Данных Подобъекта> ::= <Данное Подобъекта>[; <Список Данных Подобъекта>]
<Данное Подобъекта> ::= <Псевдоним>[[<Номер экземпляра>]].<Идентификатор данных> [[<Номер Данного>]]
<Номер экземпляра> ::= {<Специальное выражение типа Long> ½ [+:]<Начальный номер> [..<Конечный номер> [:<Шаг>]]}
<Номер Данного> {<Специальное выражение типа Long> ½ [+:]<Начальный номер> [..<Конечный номер> [:<Шаг>]]}
<Блок Данных Объекта> ::= <Описатель Данных Объекта> [; <Блок Данных Объекта>]
<Описатель Данных Объекта> ::= { For <Переменная цикла> = <Начальный номер> To <Конечный номер> [Step <Шаг>] Do <Блок Данных Объекта> End ½ <Список Данных Объекта> }
<Список Данных Объекта> ::= <Данное Объекта>[; <Список Данных Объекта>]
<Данное Объекта> ::= <Идентификатор данных> [[<Номер Данного>]]
Для понятности описаний компонентов в них необходимо включать комментарии. Комментарием является любая строка (или несколько строк) символов, заключенных в фигурные скобки. Комментарий может находиться в любом месте описания компонента. При интерпретации или компиляции описания комментарии игнорируются (исключаются из текста).
Все идентификаторы состоят из произвольных комбинаций латинских букв, цифр и подчерков. Первым символом имени обязательно является буква. Использование букв только латинского алфавита связано с тем, что коды, используемые большинством компьютеров, имеют одинаковую кодировку для букв латинского алфавита, тогда как для букв национальных алфавитов других стран кодировка различна не только от компьютера к компьютеру но и от одной операционной системы к другой.
Заглавные и прописные буквы не различаются ни в именах, ни в ключевых словах.
Все переменные (описанные в блоках Var и Static) являются локальными и доступны только в пределах той функции или процедурного блока, в котором они описаны. Статические переменные сохраняют свое значение между вызовами функций или процедурных блоков, тогда как переменные, описанные в блоках Var, не сохраняют.
Переменная Error является глобальной для всех компонентов. Глобальной является также переменная ErrorManager. Однако не рекомендуется использование этих переменных путем прямого обращения к ним. Для получения значения переменной Error служит запрос GetError, исполняемый макрокомпонентом нейрокомпьютер.
Оператор присваивания состоит из двух частей, разделенных знаком “=“. В левой части оператора присваивания могут участвовать имена любых переменных. В выражении, стоящем в правой части оператора присваивания могут участвовать любые переменные, аргументы процедурного блока и константы. В случае несоответствия типа выражения в правой части и типа переменной в левой части оператора присваивания производится приведение типа. Все выражения вычисляются слева на право с учетом старшинства операций.
Оператор ветвления. Оператор ветвления состоит из трех частей, каждая из которых начинается соответствующим ключевым словом. Первая часть – условие, начинается с ключевого слова If и содержит логическое выражение. В зависимости от значения вычисленного логического выражения выполняется Then часть (истина) или Else часть (ложь). Третья (Else) часть оператора может быть опущена. Каждая из выполняемых частей состоит из ключевого слова и оператора. При необходимости выполнить несколько операторов, необходимо использовать операторные скобки Begin End.
Цикл For имеет следующий вид:
For Переменная_цикла = Начальное_значение To Конечное_значение [By Шаг] Do <Оператор>
Переменная цикла должна быть одного из целочисленных типов. В ходе выполнения оператора она пробегает значения от Начальное_значение до Конечное_значение с шагом Шаг. Если описание шага опущено, то шаг равен единице. При каждом значении переменной цикла из диапазона выполняется оператор, являющийся телом цикла. Если в теле цикла необходимо выполнить несколько операторов, то необходимо воспользоваться операторными скобками. Допускается любое число вложенных циклов. Выполнение цикла в зависимости от соотношения между значениями Начальное_значение, Конечное_значение и Шаг приведено в табл. 11.
Таблица 11.
Способ выполнения цикла в зависимости от значений параметров цикла.
Конечное значение
Шаг
Способ выполнения
>Начального значения
>0
Цикл выполняется пока переменная цикла
£ Конечного значения
<Начального значения
Тело цикла не выполняется
=Начальному значению
¹0
Тело цикла выполняется один раз
<0
³ Конечного значения
=0
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76