Читаем Учебное пособие по курсу «Нейроинформатика» полностью

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

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

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

Таблица 15. Предопределенные константы типов элементов массивов

ИдентификаторЗначениеОписание
mRealArray4Размер элемента — 4 байта
mIntegerArray2Размер элемента — 2 байта
mLongArray4Размер элемента — 4 байта
mLogicArray1Размер элемента — 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, исполнение функции завершается.

<p>Использование памяти</p>

Ряд запросов, исполняемых различными компонентами, возвращают в качестве ответа указатели на массивы. В этих случаях действуют следующие правила:

1. Если компонент получил пустой указатель (Null), то он сам создает массив необходимой длины.

2. Если передан непустой указатель, но существующей длины массива недостаточно, то компонент освобождает память, занятую под переданный массив и создает новый массив необходимой длины.

3. Освобождение памяти после использования массива лежит на вызывающем компоненте.

Если одному из компонентов не хватает памяти для выполнения запроса, то этот компонент может передать макрокомпоненту нейрокомпьютер запрос на дополнительную память. В этом случае макрокомпонент нейрокомпьютер передает всем компонентам запрос FreeMemory. При исполнении данного запроса каждый компонент должен освободить всю память, не являющуюся абсолютно необходимой для работы. Например, компонент задачник может для быстроты обработки держать в памяти все обучающее множество. Однако абсолютно необходимой является память, достаточная для хранения в памяти одного примера.

Запрос на освобождение памяти исполняется каждым компонентом и не включен в описания запросов компонентов, приведенные в следующих разделах.

<p>Обработка ошибок</p>

Схема обработки ошибок достаточно проста по своей идее — каждый новый обработчик ошибок может обрабатывать только часть ошибок, а обработку остальных может передать ранее установленному обработчику. Пользователь может организовать обработку ошибок и не прибегая к установке обработчика ошибок — обработчик ошибок по умолчанию почти во всех случаях устанавливает номер последней ошибки в переменную Error, которая может быть считана с помощью запроса GetError и обработана прямо в компоненте, выдавшем запрос.

Если обработчик ошибок устанавливает номер последней ошибки в переменной Error, то все запросы, поступившие после момента установки, завершаются неуспешно. Это состояние сбрасывается при вызове запроса «дать номер ошибки».

Процедура обработки ошибок

Процедура обработки ошибок должна удовлетворять следующим требованиям:

• Это должна быть процедура с дальним типом адресации. Формат описания процедуры обработки ошибок

Far;ErrorFunc(Long ErrorNumber)

• После обработки ошибок процедура может вызвать ранее установленный обработчик ошибок. Адрес ранее установленного обработчика ошибок процедура обработки ошибок получает в ходе следующей процедуры:

• Вызов процедуры с нулевым номером ошибки означает, что в следующем вызове будет передан адрес старой процедуры обработки ошибок.

Перейти на страницу:

Похожие книги

Прикладные аспекты аварийных выбросов в атмосферу
Прикладные аспекты аварийных выбросов в атмосферу

Книга посвящена проблемам загрязнения окружающей среды при авариях промышленных предприятий и объектов разного профиля и имеет, в основном, обзорный справочный характер.Изучается динамика аварийных турбулентных выбросов при наличии атмосферной диффузии, характер расширения турбулентных струйных потоков, их сопротивление в сносящем ветре, эволюция выбросов в реальной атмосфере при наличии инверсионных задерживающих слоев.Классифицируются и анализируются возможные аварии с выбросами в атмосферу загрязняющих и токсичных веществ в газообразной, жидкой или твердой фазах, приводятся факторы аварийных рисков.Рассмотрены аварии, связанные с выбросами токсикантов в атмосферу, описаны математические модели аварийных выбросов. Показано, что все многообразие антропогенных источников загрязнения атмосферного воздуха при авариях условно может быть разбито на отдельные классы по типу возникших выбросов и характеру движения их вещества. В качестве источников загрязнений рассмотрены пожары, взрывы и токсичные выбросы. Эти источники в зависимости от специфики подачи рабочего тела в окружающее пространство формируют атмосферные выбросы в виде выпадающих на поверхность земли твердых или жидких частиц, струй, терминов и клубов, разлитий, испарительных объемов и тепловых колонок. Рассмотрены экологические опасности выбросов при авариях и в быту.Книга содержит большой иллюстративный материал в виде таблиц, графиков, рисунков и фотографий, который помогает читателю разобраться в обсуждаемых вопросах. Она адресована широкому кругу людей, чей род деятельности связан преимущественно с природоохранной тематикой: инженерам, научным работникам, учащимся и всем тем, кто интересуется экологической и природозащитной тематикой.

Вадим Иванович Романов

Математика / Экология / Прочая справочная литература / Образование и наука / Словари и Энциклопедии