Книга: Учебное пособие по курсу «Нейроинформатика»
Пример описания интерпретатора
Пример описания интерпретатора
В этом разделе приведены два примера описания одного и того же интерпретатора следующего состава: первый сигнал интерпретируется как температура путем умножения на 10 и добавления 273; следующие два сигнала интерпретируются как наличие облачности, используя знаковый интерпретатор; следующие три сигнала интерпретируются как направление ветра, используя двоичный интерпретатор (восемь румбов); последние три сигнала интерпретируются максимальным интерпретатором как сила осадков (без осадков, слабые осадки, сильные осадки). В первом примере приведено описание дубликатов всех стандартных интерпретаторов. Во втором — использованы стандартные интерпретаторы.
Пример 1.
Interpretator Meteorology
{Интерпретатор осуществляющий масштабирование и сдвиг сигнала}
Inter Empty1()
Static
Real BName "Масштабный множитель";
Real C Name "Сдвиг начала отсчета";
Begin
Answer = Signals[1] * B + C;
Reliability = 0
End
{Кодирование номером канала. Знаковый интерпретатор}
Inter Binary1 : (N : Long)
Static
Real E Name "Уровень надежности";
Var
Long A, B, I;
Real Dist;
Begin
Dist = E;
B = 0; {Число единиц}
A = 0; {Номер единицы}
For I = 1 To NDo Begin
If Abs(Signals[I]) < Dist Then Dist =Abs(Signals[I]);
If Signals[I] > 0 Then Begin A = I; B = B + 1; End;
End;
If B <> 1 Then Answer = 0 Else Answer = A
Reliability = Abs(Dist / E)
End
{Кодирование номером канала. Максимальный интерпретатор.}
Inter Major1 : (N : Long)
Static
Real E Name "Уровень надежности";
Var
Real A, B;
Long I, J;
Begin
A = -1.E+30; {Максимальный сигнал}
B = -1.E+30; {Второй по величине сигнал}
J = 0; {Номер максимального сигнала}
For I = 1 ToNDo Begin
If Signals[I] > A Then Begin B = A; A = Signals[I]; J=I; End
Else If Signals[I] > B Then B = Signals[I];
End;
Answer = J;
If A – B > E Then Reliability = 1 Else Reliability = (A – B) / E;
End
Inter BynaryCoded1 : (N : Long)
Static
Real E Name "Уровень надежности";
Var
Long A, I;
Real Dist;
Begin
Dist = E;
A = 0; {Ответ}
For I = 1 To NDo Begin
If Abs(Signals[I]) < Dist Then Dist =Abs(Signals[I]);
A = A * 2;
If Signals[I] > 0 Then A = A + 1;
End;
Answer = A;
Reliability = Abs(Dist / E)
End
Contents Temp : Empty1, Cloud : Binary1(2), Wind : BynaryCoded1(3), Rain : Major1(3);
Temp SetParameters 10, 273;
Cloud SetParameters 0.1;
Wind SetParameters 0.2;
Rain SetParameters 0.15
Signals NumberOf(Signals,Temp) +NumberOf(Signals, Cloud) +
1 NumberOf(Signals, Wind) + NumberOf(Signals, Rain)
Connections
Temp.Signals <=> Signals[1];
Cloud.Signals[1..2] <=> Signals[2; 3];
Wind.Signals[1..3] <=> Signals[4..6];
Rain.Signals[1..3] <=> Signals[7..9]
Temp.Answer <=> Answer[1];
Cloud.Answer[1..2] <=> Answer[2];
Wind.Answer[1..3] <=> Answer[3];
Rain.Answer[1..3] <=> Answer[4]
End Interpretator
Пример 2.
Interpretator Meteorology
Contents Temp : Empty, Cloud : Binary(2), Wind : BynaryCoded(3), Rain : Major(3);
Temp SetParameters 10, 273;
Cloud SetParameters 0.1;
Wind SetParameters 0.2;
Rain SetParameters 0.15
End Interpretator
- БНФ языка описания интерпретатора
- Описание языка описания интерпретаторов
- БНФ языка описания оценок
- Пример описания оценки
- Пример установочного скрипта
- Пример из практики
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Примеры получения статистики
- Пример применения метода «пять почему»
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы
- Пример 17-10. Блочный комментарий