Миркес Е. М.
Шрифт:
Prep FuncPrep1(Num : Long; F : FuncType) {Функциональный предобработчик}
Static
Real MinSignals Name "Нижняя граница интервала приемлемых сигналов";
Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов";
Real Unknown Name "Значение сигнала, если значение входного " +
"признака не определено";
Real MinData Name "Значения нижней границы интервала изменения значений функции F ";
Real MaxData Name "Значения верхней границы интервала изменения значений функции F";
RealArray[Num] Y Name "Массив величин, используемых для предобработки"
Var
Integer I;
Begin
If Data[1] = UnknownReal Then Begin
For I = 1 To Num Do
Signals[I] = Unknown
End Else Begin
For I = 1 To Num Do
Signals[1] = (F(Data[1] – Y[1] – MinData) * (MaxSignals – MinSignals) / (MaxData – MinData) + MinSignals
End
Prep PositPrep1(Num : Long) {Позиционный предобработчик}
Static
Real MinSignals Name "Нижняя граница интервала приемлемых сигналов"
Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов"
Real Unknown Name"Значение сигнала, если значение входного признака не определено";
Real Y Name "Основание системы счисления"
Var
Integer I;
Real W, Q;
Begin
If Data[1] = UnknownReal Then Begin
For I = 1 To Num Do
Signals[I] = Unknown
End Else Begin
W = Data[1];
For I = 1 To Num Do Begin
Q = W RMod Y;
Signals[I] = Q * (MaxSignals – MinSignals) / Y + MinSignals;
W = (W - Q) / Y
End;
End
Contents Temp : EmptyPrep1, Cloud : BinaryPrep1, Wind : UnOrdered1(8), Rain : Ordered1(3);
{Для всех предобработчиков приемлемые значения входных сигналов лежат в интервале от -1 до 1. В случае неопределенного значения во входных данных все сигналы данного предобработчика полагаются равными нулю. Входные данные первого предобработчика меняются от 273 до 293}
Temp SetParameters – 1, 1, 1E-40, 273, 293;
CloudSetParameters – 1, 1, 0, True;
Wind SetParameters – 1, 1, 0;
RainSetParameters – 1, 1, 0
Signals NumberOf(Signals,Temp) + NumberOf(Signals, Cloud) + NumberOf(Signals, Wind(8)) + NumberOf(Signals, Rain(3))
Data NumberOf(Data,Temp) + NumberOf(Data, Cloud) + NumberOf(Data,Wind(8)) + NumberOf(Data, Rain(3))