Вариант 2.
InSignals[1..6] <=> Net[1..2]. InSignals[1..3]
Вариант 3.
InSignals[1]; InSignals[2]; InSignals[3]; InSignals[4]; InSignals[5]; InSignals[6] <=> ForI=1 To3 Do ForJ=1 To2 DoNet[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] <=> ForI=3 To1 Step-1 DoNet[2..1:-1]. InSignals[I] End
Вариант 3.
InSignals[6..1:-2]; InSignals[5..1:-2]<=> ForI=1 To3 Do ForJ=1 To2 DoNet[J]. InSignals[I] End End
Функции управления памятью
Для создания массивов и освобождения занимаемой ими памяти используются следующие функции:
Создание массива.
Function NewArray(Type: Integer; Size: Long): PRealArray;
Описание аргументов:
Type — задает размер элемента массива и является одной из предопределенных констант, приведенных в табл. 15.
Size — число элементов в массиве.
Описание исполнения.
1. Если аргумент Type не совпадает ни с одной из предопределенных констант, приведенных в табл. 15, то возвращается значение Null, исполнение функции завершается.
2. Создается массив, занимающий Size*Type+4 байта.
3. Адрес массива возвращается как результат.
Таблица 15. Предопределенные константы типов элементов массивов
Идентификатор |
Значение |
Описание |
mRealArray |
4 |
Размер элемента — 4 байта |
mIntegerArray |
2 |
Размер элемента — 2 байта |
mLongArray |
4 |
Размер элемента — 4 байта |
mLogicArray |
1 |
Размер элемента — 1 байт |
Освобождение массива.
Function FreeArray(Type: Integer; Array: PRealArray): Logic;
Описание аргументов:
Type — задает размер элемента массива и является одной из предопределенных констант, приведенных в табл. 15.
Array — адрес массива. Память, занимаемая этим массивом, должна быть освобождена.
Описание исполнения.
1. Если аргумент Type не совпадает ни с одной из предопределенных констант, приведенных в табл. 15, то возвращается значение False, исполнение функции завершается.
2. Освобождается память размером TReal(Array[0])*Type+4 байта.
3. Аргументу Array присваивается значение Null
Пересоздание массива.
Function ReCreateArray(Type: Integer; Array: PRealArray; Size: Long): Logic;
Описание аргументов:
Type — задает размер элемента массива и является одной из предопределенных констант, приведенных в табл. 15.
Array — адрес массива.
Size — число элементов в массиве.
Описание исполнения.
1. Если аргумент Type не совпадает ни с одной из предопределенных констант, приведенных в табл. 15, то возвращается значение 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, исполнение функции завершается.
Ряд запросов, исполняемых различными компонентами, возвращают в качестве ответа указатели на массивы. В этих случаях действуют следующие правила:
1. Если компонент получил пустой указатель (Null), то он сам создает массив необходимой длины.
2. Если передан непустой указатель, но существующей длины массива недостаточно, то компонент освобождает память, занятую под переданный массив и создает новый массив необходимой длины.
3. Освобождение памяти после использования массива лежит на вызывающем компоненте.
Если одному из компонентов не хватает памяти для выполнения запроса, то этот компонент может передать макрокомпоненту нейрокомпьютер запрос на дополнительную память. В этом случае макрокомпонент нейрокомпьютер передает всем компонентам запрос FreeMemory.При исполнении данного запроса каждый компонент должен освободить всю память, не являющуюся абсолютно необходимой для работы. Например, компонент задачник может для быстроты обработки держать в памяти все обучающее множество. Однако абсолютно необходимой является память, достаточная для хранения в памяти одного примера.
Читать дальше