function onFocusVALUE()
{ BResult.focus();}
var M1="0", M2="0", op=0, count=0, b=0;
function checkNum(str)
{
for (var i = 0; i < str.length; i++){
var ch = str.substring(i, i+1);//буферный символ
if ( ((ch<"0")||(ch >"9")) && ((ch!="/")&&(ch!="*")&&(ch!="+")&&(ch!="-")&&(ch!=".")&&(ch!="(")&&(ch!=")")) ){
ERROR.value="Некорректное выражение!";
return false;
}
}return true;
}
function onClickButton(n)
{
ERROR.value="Вводите числа ("+n+")";
switch(n){
case "=":
RESULT.value="0";
if(op||count) ERROR.value='Завершите выражение';
else if (checkNum(STRING.value)){
RESULT.value=eval(STRING.value); op=0;
STRING.value="0"; b=op=0;
}
break;
case "0":case "1":case "2":case "3":case "4":case "5":case "6":case "7":case "8":case "9":
if(STRING.value=="0") STRING.value=n;
else STRING.value+=n;
b=op=0;
break;
case ",":
if(b)break; b=1;
if(STRING.value=="0") STRING.value="0.";
else STRING.value+=".";
op=0;
break;
case "+":case "-":case "*":case "/":b=0;
if((STRING.value!="0")&&(STRING.value.length)&&(!op)){ STRING.value+=n; op=1;}
break;
case "<":b=0;
if(STRING.value.length) STRING.value=STRING.value.substring(0, STRING.value.length-1);
if(!STRING.value.length) STRING.value="0";
if(op) op=0;
break;
case "?":b=0;
RESULT.value=-RESULT.value;
break;
case "(":b=0;
if(op||(STRING.value=="0")){
if(STRING.value=="0") STRING.value=n;
else STRING.value+=n;
count++;
}
break;
case ")":b=0;
if(!op&&(STRING.value!="0")&&(count>0))
STRING.value+=n, count--;
break;
}
}
function ClearAll()
{
MEM1.value="0"; MEM2.value="0"; RESULT.value="0"; STRING.value="0"; op=0;
}
function ClearResult()
{STRING.value="0"; op=0;}
function ClearM1()
{MEM1.value="0";}
function ClearM2()
{MEM2.value="0";}
function ReadM1()
{if((MEM1.value!="0")&&(MEM1.value.length)) op=0, STRING.value+=MEM1.value;}
function ReadM2()
{if((MEM2.value!="0")&&(MEM2.value.length)) op=0, STRING.value+=MEM2.value;}
function AddM1()
{ onClickButton("="); MEM1.value=eval(MEM1.value+"+"+RESULT.value);}
function AddM2()
{ onClickButton("="); MEM2.value=eval(MEM2.value+"+"+RESULT.value);}
|
|
||