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

ParamMask

Integer

H0004

4

Запросы к компоненту сеть

PositPrep

Integer

H0006

6

Запросы компонента предобработчик

tbAnswers

Integer

H0004

4

Язык описания задачника

tbCalcAnswers

Integer

H0006

6

Язык описания задачника

tbCalcReliability

Integer

H0007

7

Язык описания задачника

tbColor

Integer

H0001

1

Язык описания задачника

tbComment

Integer

H000A

10

Язык описания задачника

tbEstimation

Integer

H0009

9

Язык описания задачника

tbInput

Integer

H0002

2

Язык описания задачника

tbPrepared

Integer

H0003

3

Язык описания задачника

tbReliability

Integer

H0005

5

Язык описания задачника

tbWeight

Integer

H0008

8

Язык описания задачника

True

Logic

HFF

-1


UnknownLong

Integer

H0000

0

Неопределенные значения

UnknownReal

Real

нет

1E-40

Неопределенные значения

UnOrdered

Integer

H0001

1

Запросы компонента предобработчик

UserType

Integer

HFFFF

-1

Структурная единица, определенная пользователем.

Три предопределенные константы, приведенные в табл. 4, не описываются ни в одном разделе данной работы. Это константы общего пользования. Их значение:

True – значение истина для присваивания переменным логического типа.

False – значение ложь для присваивания переменным логического типа.

Null – пустой указатель. Используется для сравнения или присваивания переменным всех типов указателей.

1.4.4.                       Использование памяти

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

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

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

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

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

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

1.4.5.                       Обработка ошибок

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

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

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

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

Pascal:

Procedure ErrorFunc( ErrorNumber : Long ); Far;

C:

void far ErrorFunc(Long ErrorNumber)

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

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

B.                Значение аргумента ErrorNumber при вызове, следующем непосредственно за вызовом с нулевым номером ошибки, должно интерпретироваться как адрес старой процедуры обработки ошибок.

Ниже приведено описание запросов, связанных с обработкой ошибок и исполняемых макрокомпонентом нейрокомпьютер.

1.4.5.2.   Установить обработчик ошибок (OnError)

Описание запроса:

Pascal:

Function OnError( NewError : ErrorFunc ) : Logic;

C:

Logic OnError(ErrorFunc NewError)

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

NewError - адрес новой процедуры обработки ошибок.

Назначение – устанавливает новый обработчик ошибок.

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

1.     Если Error <> 0, то выполнение запроса прекращается.

2.     Вызов NewError с аргументом 0 - настройка на установку цепочки обработки ошибок.

3.     Вызов NewError с аргументом ErrorManager (вместо длинного целого передается адрес старой процедуры обработки ошибок).

4.     ErrorManager := NewError

1.4.5.3.   Дать номер ошибки (GetError)

Описание запроса:

Pascal:

Function GetError : Integer;

C:

Integer GetError()

Назначение - возвращает номер последней необработанной ошибки и сбрасывает ее.

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

1.     GetError := Error

2.     Error := 0

Списки ошибок, возникающих в различных компонентах, даны в разделах «Ошибки компоненты ...», в соответствующих главах. Все номера ошибок каждого компонента являются трехзначными числами и начинаются с номера компонента, указанного в колонке «Ошибка» табл. 5.

1.4.6.                       Запросы, однотипные для всех компонентов

Таблица 5

Префиксы компонентов

Префикс

Компонент

Запроса

Ошибки


ex

0

Исполнитель

tb

1

Задачник

pr

2

Предобработчик

nn

3

Сеть

es

4

Оценка

ai

5

Интерпретатор ответа

in

6

Учитель

cn

7

Контрастер

Страницы: 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 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.