public TinhBieuThuc(string input) { PhepTinh = new PhepTinh(); BieuThuc = new ArrayList(); input = input.Replace(" ", "") + ")"; string temp = ""; int tag = 0; while (input != "") { bool isDigit = isNumber(input[0]) || (tag == 0 && input[0] == '-' && char.IsDigit(input[1])); if (isDigit) { tag = 1; do { temp += input[0].ToString(); input = input.Substring(1); } while (isNumber(input[0]) && input[0] != '-'); BieuThuc.Add(double.Parse(temp)); temp = ""; } else { tag = 0; BieuThuc.Add(input[0].ToString()); input = input.Substring(1); } } for (int i = 0; i < BieuThuc.Count - 1; i++) { if (isDouble(BieuThuc[i]) && isDouble(BieuThuc[i + 1])) { BieuThuc.Insert(i + 1, "+"); } } }
/// <summary> /// Bước 1: Đưa về dạng trung tố /// Bước 2: Kiểm tra tính đúng sai /// Bước 3: Chuyển trung tố sang hậu tố /// Bước 4: Tính hậu tố /// </summary> public TinhBieuThuc() { BieuThuc = new ArrayList(); PhepTinh = new PhepTinh(); }