public void WorkOutResult() { string str = strcal.GetString(); SortString(str); result = Calculator(); }
public double GetResult() { string str = strcal.GetString(); if (str == "") { SortBlock2G.error.ErrorMessage += "Input Is Wrong!\n"; errorMessage += "输入错误\n"; this.Wrong = true; return(0); } else { SortString(str); return(Calculator()); } }
public static void Main0(string[] args) { // Calculte cal=new Calculte (); // string str=cal.GetString (); // string strcal=cal .BackSort (str); // double result=cal .Calculator (strcal ); //------------------------------------------------------------------------------ //----------------------主程序--------------------------------------------------- char op = '0'; while (op != 'q') { CalString cal = new CalString(""); cal.UIGetString(); SortBlock2 sort = new SortBlock2(); sort.GetCalString(cal); double result = sort.GetResult(); if (sort.IsError()) { Console.WriteLine(sort.ShowInfo()); } Console.Write(cal.GetString() + "=" + result.ToString() + '\n' + "按q退出,其他键继续" + '\n'); SortBlock2.Wrong = false; SortBlock2.error.ErrorMessage = ""; op = Console.ReadKey().KeyChar; } //---------------------------------------------------------------------------------------------- // cos(sin(20+30-20)*20+50)*4/2^2+1/2+cos(sin(20+30-20)*20+50)*4/2^2+1/2 // pow(sin(30)*4,2) // SortBlock2 Release模式下用时32 // int i=cal.FindOp(0,'('); // int k=cal.FindBrackets(i); // string str=cal.FromToEnd(i,k); // Console.WriteLine(str); // 其实C#自带的就已经很屌了 Console.WriteLine(3+30*3*(3-4)); /** * 测试找括号 */ // char []opts={'(',')' }; // string str="(1+2)+1*(2+3)"; // CalString scal=new CalString(str); // int [] ars=scal.FindAllElements(scal.FindOps,opts); // foreach (int element in ars) { // Console.WriteLine(element); // } /* * 测试逗号查找 */ // char []opts={','}; // string str="pow(1,1,2,3)"; // CalString scal=new CalString(str); // int [] ars=scal.FindAllElements(opts); // foreach (int element in ars) { // Console.WriteLine(element); // } // Console.WriteLine(Math.Log(Math.E)); /* * 测试FuncName的FindFunName方法 */ // Console.WriteLine(FuncName.FindName("cos")); // Console.WriteLine(FuncName.CheckFun("cos",1)); //测试FindOp // int c=scal.FindOp(0,opts); // Console.WriteLine(c); // 测试时间 //不改730多 //加一个方法 改成NoGetResult 740多 //用Paraller 1300多 //Paraller 干for循环只要410多 // char op = '0'; // while (op != 'q') { // CalString cal = new CalString(""); // cal.UIGetString(); // Stopwatch sw=new Stopwatch(); // sw.Start(); // // // double result=0; //// for(int i=0;i<10000;i++) //// { //// sort = new SortBlock2(); //// sort.GetCalString(cal); //// //// result = sort.NoGetResult(); //// } //// // Parallel.For( 0,10000,(i)=> // { // SortBlock2 sort= new SortBlock2(); // sort.GetCalString(cal); // // result = sort.NoGetResult(); // }); //// if (sort.IsError()) { //// Console.WriteLine(sort.ShowInfo()); //// } // Console.Write(cal.GetString() + "=" + result.ToString() + '\n' + "按q退出,其他键继续" + '\n'); // sw.Stop(); // long time=sw.ElapsedMilliseconds; // Console.WriteLine(time); // op = Console.ReadKey().KeyChar; // } // // // // // Console.ReadKey(); }