| 用as设计计算器,按照运算法则运算 |
| 责任编辑:admin 更新日期:2005-8-6 |
length; i++) { if (Number(ns[i]) == 0) { nt++; } else { break; } } var nz = String(n).substr(nt+2, 1); var nx = String(n).substr(nt+3); if (nx != "") { return String(nz+"."+nx+"e-"+(nt+1)); } else { return String(nz+"e-"+(nt+1)); } } else { return n; } } } //化成普通数 function ChangetoF(n:Number) { var ns = String(n); if (ns.indexOf("e") == -1) { return n; } else { var nss = ns.split("e"); var nz = nss[0]; var nx = nss[1]; if (nz.indexOf(".") == -1) { for (var i = 0; i<Number(nx); i++) { nz += "0"; } } else { var nzs = nz.split("."); var nzz = nzs[0]; if (nzs[1].length<=Number(nx)) { for (var i = 0; i<(Number(nx)-Number(nzs[1])); i++) { nzz += "0"; } nz = nzz; } return String(nz); } } } //ChangetoF和ChangetoE函数支持,删除字符串右边的指定字符 function Rtrim(n:String, d:String) { if (d == undefined) { d = " "; } if (n.indexOf(d) != -1) { var ss = n.split(""); var ssl = ss.length; for (var i = ssl; i>=0; i--) { if (ss[i] == d) { if (i+1 == ss.length) { ss.pop(); } } } return ss.join(""); } else { return n; } } //*************************************************************************** //监听键盘用 function onKeyDown(Ob) { if ((Key.isDown(48) || Key.isDown(96)) && !Key.isDown(16)) { numbers(0); } if ((Key.isDown(49) || Key.isDown(97)) && !Key.isDown(16)) { numbers(1); } if ((Key.isDown(50) || Key.isDown(98)) && !Key.isDown(16)) { numbers(2); } if ((Key.isDown(51) || Key.isDown(99)) && !Key.isDown(16)) { numbers(3); } if ((Key.isDown(52) || Key.isDown(100)) && !Key.isDown(16)) { numbers(4); } if ((Key.isDown(53) || Key.isDown(101)) && !Key.isDown(16)) { numbers(5); } if ((Key.isDown(54) || Key.isDown(102)) && !Key.isDown(16)) { numbers(6); } if ((Key.isDown(55) || Key.isDown(103)) && !Key.isDown(16)) { numbers(7); } if ((Key.isDown(56) || Key.isDown(104)) && !Key.isDown(16)) { numbers(8); } if ((Key.isDown(57) || Key.isDown(105)) && !Key.isDown(16)) { numbers(9); } // A键 if (Key.isDown(65)) { numbers("A"); } // B键 if (Key.isDown(66)) { numbers("B"); } // C键 if (Key.isDown(67)) { numbers("C"); } // D键 if (Key.isDown(68)) { numbers("D"); } // E键 if (Key.isDown(69)) { numbers("E"); } // F键 if (Key.isDown(70)) { numbers("F"); } // F9 键 if (Key.isDown(120)) { minuss(); } //.键 if (Key.isDown(110)) { dot(); } //BackSpace键 if (Key.isDown(8)) { BackSpace(); } //ESC 键 if (Key.isDown(27)) { C(); } // delete 键 if (Key.isDown(46)) { CE(); } //+键 if (Key.isDown(107)) { plus(); } //-键 if (Key.isDown(109)) { minus(); } //*键或shift+8 if (Key.isDown(106) || (Key.isDown(56) && Key.isDown(16))) { multiply(); } // /键 if (Key.isDown(111) || Key.isDown(191)) { except(); } //shift+2 if (Key.isDown(50) && Key.isDown(16)) { sqrt(); } //Enter if (Key.isDown(13)) { equal(); } //shift+5 if (Key.isDown(53) && Key.isDown(16)) { percent(); } // R键 if (Key.isDown(82)) { reciprocal(); } //ctrl+L if (Key.isDown(76) && Key.isDown(17)) { MC(); } //ctrl+R if (Key.isDown(82) && Key.isDown(17)) { MR(); } //ctrl+M if (Key.isDown(77) && Key.isDown(17)) { MS(); } //ctrl+P if (Key.isDown(80) && Key.isDown(17)) { MP(); } //P键 if (Key.isDown(80)) { PI(); } //T键 if (Key.isDown(84)) { tan(); } //ctrl+T if (Key.isDown(84) && Key.isDown(17)) { atan(); } //S键 if (Key.isDown(83)) { sin(); } //ctrl+S if (Key.isDown(83) && Key.isDown(17)) { asin(); } //O键 if (Key.isDown(79)) { cos(); } //ctrl+O if (Key.isDown(79) && Key.isDown(17)) { acos(); } //ctrl+2 if (Key.isDown(50) && Key.isDown(17)) { pow2(); } //;键 if (Key.isDown(186)) { this.int(); } //ctrl+; if (Key.isDown(186) && Key.isDown(17)) { aint(); } //V键 if (Key.isDown(86)) { FtoE(); } //shift+9 if (Key.isDown(57) && Key.isDown(16)) { leftBracket(); } //shift+0 if (Key.isDown(48) && Key.isDown(16)) { rightBracket(); } //shift+3 if (Key.isDown(51) && Key.isDown(16)) { pow3(); } //Y键 if (Key.isDown(89)) { pow(); } //N键 if (Key.isDown(78)) { log(); } //shift+N if (Key.isDown(78) && Key.isDown(16)) { exp(); } //L键 if (Key.isDown(76)) { Exp(); } //shift+! if (Key.isDown(49) && Key.isDown(16)) { factorial(); } //M键 if (Key.isDown(77)) { dms(); } //shift+M if (Key.isDown(77) && Key.isDown(16)) { adms(); } //ctrl+5 if (Key.isDown(53) && Key.isDown(17)) { Mod(); } //ctrl+S if (Key.isDown(83) && Key.isDown(17)) { Sta(); } //shift+A if (Key.isDown(65) && Key.isDown(16)) { Ave(); } //ctrl+A if (Key.isDown(65) && Key.isDown(17)) { Ave2(); } //shift+T if (Key.isDown(84) && Key.isDown(16)) { Sum(); } //ctrl+T if (Key.isDown(84) && Key.isDown(17)) { Sum2(); } //shift+D if (Key.isDown(68) && Key.isDown(16)) { S(); } //ctrl+D if (Key.isDown(68) && Key.isDown(17)) { S2(); } //Insert键 if (Key.isDown(45) && Key.isDown(17)) { Data(); } //ctrl+shift+L if (Key.isDown(76) && Key.isDown(17) && Key.isDown(16)) { load(); } //ctrl+shift+C if (Key.isDown(67) && Key.isDown(17) && Key.isDown(16)) { clear(); } //ctrl+shift+A if (Key.isDown(65) && Key.isDown(17) && Key.isDown(16)) { clearAll(); } } //监听器用 function addListener(Ob:Object) { _listeners.push(Ob); } function removeListener(Ob:Object) { for (var i = 0; i<_listeners.length; i++) { if (_listeners[i] == Ob) { _listeners.splice(i, 1); } } } function broadcastMessage() { for (var i = 0; i<_listeners.length; i++) { _listeners[i][arguments[0]](arguments[1], arguments[2], arguments[3]); } } function CounterMessage(n:String) { group(); broadcastMessage("onKeyDown", n, output, value); } //Getter And Setter function get memory():Number { return getMemory(); } function getMemory():Number { return remember; } function get hasMemory():Boolean { return gethasMemory(); } function gethasMemory():Boolean { return (remember != undefined); } function set system(n:Number) { setSystem(n); } function get system():Number { return getSystem(); } function setSystem(n:Number) { if (n>=2 && n<=36) { changeS(n); } } function getSystem():Number { return systems; } function set unit(n:String) { setUnit(n); } function get unit():String { return getUnit(); } function setUnit(n:String) { if (n == "radian") { units = 1; } else if (n == "degree") { units = 0; } } function getUnit():String { var n:String = ""; if (units=1) { n == "radian"; } else if (units=0) { n == "degree"; } return n; } function get hasBracket():Boolean { return gethasBracket(); } function gethasBracket():Boolean { return (inbracket.length != 0); } function get bracketNum():Number { return getBracketNum(); } function getBracketNum():Number { return inbracket.length; } function get hasData():Boolean { return gethasData(); } function gethasData():Boolean { return (data != undefined); } function get n():Number { return getN(); } function getN():Number { return data.length; } } //End
运算的关键是calculate()和evals()。前者是把算式合理拆分,后者负责计算只包含乘,除和幂的字符串。然后在由calculate()计算加,减,取模,这就实现了按运算法则运算。希望能帮忙再改进一下。
还有,里面的阶乘(factorial()函数)希望会的同志改一下,现在只能算整数,最好整数,小数通吃。顺便问一下,梯度是什么?怎么换算?我希望能做出比Windows自带的计算器更好的计算器,至少功能要同样丰富。
as文件:
点击浏览该文件 |
| |
上一页 [1] [2] [3] [4]
|
| 上一篇文章: 使用fscommand如何正确调用exe文件 |
| 下一篇文章: getURL实现框架的更新 |
|
|
|
|