var s = 1;
var r = 0;
var param2 = AND_NOT(param1, s);
var param1 = AND_NOT(r, param2);
function AND_NOT(a,b) {
return !(a && b);
}
//************BASIC OPERATIONS*************
function AND(bit1, bit2)
{
return bit1 & bit2;
}
function OR(bit1, bit2)
{
return bit1 | bit2;
}
function NOT(bit)
{
if(bit)
return 0;
else
return 1;
}
//************COMPOSIT OPERATIONS*************
function AND_NOT(bit1, bit2)
{
return NOT(AND(bit1, bit2));
}
function XOR(bit1, bit2)
{
return bit1 ^ bit2;
}
//************TRIGGERS**************
function trSmidt(r,s)
{
var param2 = AND_NOT(param1, s);
var param1 = AND_NOT(r, param2);
var q = new Array(param2, param1);
return q;
}
Вход, Верхний_порог, Нижний_порог - вещественные; //Верхний_порог > Нижний_порог
Триггер, Выход - булевые;
Задание значений Верхний_порог, Нижний_порог;
Триггер = 0; //Обозначения булевых переменных 0 и 1 это "ЛОЖЬ" и "ИСТИНА" соответственно
ЦИКЛ
//Например тут можно вставить условие выхода из цикла
ВВОД Вход;
ЕСЛИ Вход < Нижний_порог ТО Триггер = 0; Выход = 0; КОНЕЦ ЕСЛИ;
ЕСЛИ Вход >= Верхний_порог ТО Триггер = 1; Выход = 1; КОНЕЦ ЕСЛИ;
ЕСЛИ Вход < Верхний_порог И Вход >= Нижний_порог ТО
ЕСЛИ Триггер = 0 ТО Выход = 0 ИНАЧЕ Выход = 1 КОНЕЦ ЕСЛИ;
КОНЕЦ ЕСЛИ;
КОНЕЦ ЦИКЛА;
function trRS(r,s) {
return [ r, s ];
}