Map = CreateArray; {Создаем вспомогательные массивы}
DirectMap= CreateArray;
If
If
Est1 = Estimate(Handle, True);
If Error
RadiusNum = 1; {Обрабатываем первый радиус}
Radius = 1 / RadiusNum; {Вычисляем первый радиус}
If Not
End
InstrStep
Begin
TryNum = 0;
While TryNum < Try Do Begin
If Not
If Not
If Not
Est2 = Estimate(Handle, True);
If Error
If
If Not
Est1 = Est2;
TryNum = 0;
End Else
End
RadiusNum = RadiusNum + 1; {Обрабатываем следующий радиус}
Radius = 1 / RadiusNum; {Вычисляем следующий радиус}
End
Close
Begin
Exit:
If Not
If Not
If Not
QName = "CloseSession"; {Задаем имя запроса}
Map = NewArray(mRealArray, 1); {Создаем массив для аргументов запроса}
If
TPointer(Map^[1]) = @Handle; {Заносим адрес единственного аргумента}
If Not
If Not
Exit1:
End
End Instructor
Пример 2. Библиотека функций
InstrLib
{Метод наискорейшего спуска}
Function
Label
Var
Real
Begin
Est = CalcGradient(Handle, True);
If Error
Est =Optimize(Null, Step); {Вызываем функцию подбора оптимального шага}
If Error
SDM = Est;
GoTo Endd;
Exit:
SDM = 0;
Endd:
End
{Метод случайного поиска}
Function
Label
Var
Real
PRealArray
Begin
Direction = CreateArray; {Создаем вспомогательный массив}
If
If Not
If Error
Est =Optimize(Direction, Step); {Вызываем функцию подбора оптимального шага}
If Error
RDM = Est;
GoTo Endd;
Exit:
RDM = 0;
Endd:
End
End InstrLib
Пример 3. Антиовражная процедура обучения.