Рефераты. Функциональные модели универсального нейрокомпьютера

Цикл While. Тело цикла выполняется до тех пор, пока верно логическое выражение. Проверка истинности логического выражения производится перед выполнением тела цикла. Если тело цикла должно содержать более одного оператора, то необходимо использовать операторные скобки.

4.3.7.9.   Описание распределения сигналов

Раздел описания распределения сигналов начинается с ключевого слова Connections. За ключевым словом Connections следует одна или несколько групп соответствий. Каждая группа соответствий состоит из правой и левой частей, разделенных символами «<=>» и описывает соответствие имен сигналов (параметров) различных структурных единиц. Каждая часть группы соответствий представляет собой список сигналов (параметров) или интервалов сигналов (параметров), разделенных между собой символом «;». Указанные в левой и правой частях сигналы (параметры) отождествляются. Если при указании сигнала (параметра) не указано имя подобъекта, то это сигнал (параметр) описываемого объекта. Использование интервала сигналов (параметров) в правой или левой части группы соответствий равносильно перечислению сигналов (параметров), с номерами, входящими в интервал, начиная с начального номера c шагом, указанным после символа «:». Если шаг не указан, то он полагается равным единице. Число сигналов в правой и левой частях группы соответствий должно совпадать. Если интервал пуст (например [2..1:1]), то описываемая им группа сигналов считается отсутствующей и пропускается. При использовании в описании соответствий явных циклов, во всех выражениях внутри цикла возможно использование переменной цикла. При этом подразумевается следующий порядок перечисления: Сначала изменяется номер в самом правом интервале, далее во втором справа, и т.д. В последнюю очередь изменяются значения переменных цикла явных циклов в порядке их вложенности (переменная самого внутреннего цикла меняется первой и т.д.). Рассмотрим следующий пример описания группы соответствий блока, содержащего две сети Net с 3 входами каждая. Ниже приведено две различных структуры связей по несколько эквивалентных вариантов описания.

Случай 1. Естественный порядок связей.

Вариант 1.

InSignals[1] <=> Net[1].InSignals[1]

InSignals[2] <=> Net[1].InSignals[2]

InSignals[3] <=> Net[1].InSignals[3]

InSignals[4] <=> Net[2].InSignals[1]

InSignals[5] <=> Net[2].InSignals[2]

InSignals[6] <=> Net[2].InSignals[3]

Вариант 2.

InSignals[1..6] <=> Net[1..2].InSignals[1..3]

Вариант 3.

InSignals[1]; InSignals[2]; InSignals[3]; InSignals[4]; InSignals[5];

InSignals[6] <=> For I=1 To 3 Do For J=1 To 2

Do Net[J].InSignals[I] End End

Случай 2. Другой порядок связей.

Вариант 1.

InSignals[1] <=> Net[2].InSignals[3]

InSignals[2] <=> Net[1].InSignals[3]

InSignals[3] <=> Net[2].InSignals[2]

InSignals[4] <=> Net[1].InSignals[2]

InSignals[5] <=> Net[2].InSignals[1]

InSignals[6] <=> Net[1].InSignals[1]

Вариант 2.

InSignals[1..6] <=> For I=3 To 1 Step -1 Do Net[2..1:-1].InSignals[I] End

Вариант 3.

InSignals[6..1:-2]; InSignals[5..1:-2]<=>

For I=1 To 3 Do For J=1 To 2 Do Net[J].InSignals[I] End End

4.3.7.10.                     Функции управления памятью

Для создания массивов и освобождения занимаемой ими памяти используются следующие функции:

Создание массива.

Function NewArray( Type : Integer; Size : Long ) : PRealArray;

Таблица 12.

Предопределенные константы типов элементов массивов

Иденти-

Фикатор

Значение

Описание

MRealArray

4

Размер элемента – 4 байта

MIntegerArray

2

Размер элемента – 2 байта

mLongArray

4

Размер элемента – 4 байта

mLogicArray

1

Размер элемента – 1 байт

Описание аргументов:

Type – задает размер элемента массива и является одной из предопределенных констант, приведенных в табл. 12.

Size – число элементов в массиве.

Описание исполнения.

1.     Если аргумент Type не совпадает ни с одной из предопределенных констант, приведенных в табл. 12, то возвращается значение Null, исполнение функции завершается.

2.     Создается массив, занимающий Size*Type+4 байта.

3.     Адрес массива возвращается как результат.

Освобождение массива.

Function FreeArray( Type : Integer; Array : PRealArray ) : Logic;

Описание аргументов:

Type – задает размер элемента массива и является одной из предопределенных констант, приведенных в табл. 12.

Array – адрес массива. Память, занимаемая этим массивом, должна быть освобождена.

Описание исполнения.

1.     Если аргумент Type не совпадает ни с одной из предопределенных констант, приведенных в табл. 12, то возвращается значение False, исполнение функции завершается.

2.     Освобождается память размером TReal(Array[0])*Type+4 байта.

3.     Аргументу Array присваивается значение Null

Пересоздание массива.

Function ReCreateArray( Type : Integer; Array : PRealArray; Size : Long ) : Logic;

Описание аргументов:

Type – задает размер элемента массива и является одной из предопределенных констант, приведенных в табл. 12.

Array – адрес массива.

Size – число элементов в массиве.

Описание исполнения.

1.     Если аргумент Type не совпадает ни с одной из предопределенных констант, приведенных в табл. 12, то возвращается значение False, исполнение функции завершается.

2.     Если аргумент Array не равен Null, и TReal(Array[0]) равен Size, то возвращается значение True, выполнение функции завершается.

3.     Если аргумент Array не равен Null, и TReal(Array[0]) не равен Size, то освобождается память размером TReal(Array[0])*Type+4 байта. Аргументу Array присваивается значение Null

4.     Аргументу Array присваивается значение NewArray(Type,Size), возвращается значение True, исполнение функции завершается.

4.3.7.11.                     БНФ языка описания сетей

В данном разделе приведена БНФ языка описания сетей.

<Описание библиотеки подсетей> ::= <Заголовок библиотеки> <Описание подсетей> <Конец описания библиотеки>

<Заголовок библиотеки> ::= NetLib <Имя библиотеки> [Used <Список имен библиотек>]

<Имя библиотеки> ::= <Идентификатор>

<Список имен библиотек> ::= <Имя используемой библиотеки> [,<Список имен библиотек>]

<Имя используемой библиотеки> ::= <Идентификатор>

<Описание подсетей> ::= <Описание подсети> [<Описание подсетей>]

<Описание подсети> ::= {<Описание элемента> ½ <Описание блока> ½ <Описание функций>}

<Описание элемента> ::= <Заголовок описания элемента> <Описание сигналов и параметров> [<Описание типов параметров>] [<Определение типов параметров>] [<Описание статических переменных>] [<Установление значений статических переменных>] <Описание методов> <Конец описания элемента>

<Заголовок описания элемента> ::= Element <Имя элемента> [(<Список формальных аргументов>)]

<Имя элемента> ::= <Идентификатор>

<Описание сигналов и параметров> ::= <Описание входных сигналов> <Описание выходных сигналов> [<Описание параметров>]

<Описание входных сигналов> ::= InSignals <Константное выражение типа Long>

<Описание выходных сигналов> ::= OutSignals <Константное выражение типа Long>

<Описание параметров> ::= Parameters <Константное выражение типа Long>

<Описание типов параметров> ::= <Описание типа параметров> [<Описание типов параметров>]

<Описание типа параметров> ::= ParamType <Имя типа параметра> <Список>

<Имя типа параметра> ::= <Идентификатор>

<Список> ::= {Parameters[<Начальный номер> [..<Конечный номер> [<Шаг>]]] ½ InSignals[<Начальный номер> [..<Конечный номер> [<Шаг>]]]} [;<Список>]

<Определение типов параметров> ::= <Определение типа параметра> [<Определение типов параметров>]

<Определение типа параметра> ::= ParamDef <Имя типа параметра> <Минимальное значение> <Максимальное значение>

Страницы: 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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.