public BlockData ConverToBlock() { FuncString funstring = new FuncString(strExpress); int leftBracket = funstring.FindOp(0, '('); int rightBracket = funstring.FindOp(0, ')'); int commaSymbol = funstring.FindOp(0, ','); string[] ab = strExpress.Split(','); double a = 0; double b = 0; try { string strA = new ExpData(ab[0].Substring(1)).GetValueEx(); string strB = new ExpData(ab[1].Substring(0, ab[1].Length - 1)).GetValueEx(); a = double.Parse(strA); b = double.Parse(strB); } catch (ExpError e) { throw new AssignedError(e.Message + "\nAssignmentError::区间转换出错" + "\n"); } BlockData bd = new BlockData(a, b); bool left; bool right; if (leftBracket != -1 && leftBracket < commaSymbol) { left = false; } else { left = true; } if (rightBracket != -1 && rightBracket > commaSymbol) { right = false; } else { right = true; } bd.SetBlockBounderAvailable(left, right); cd = bd; return(bd); }
public DataType GetDataType() { DataType dt = new DataType(); Function.FuncString funstring = new FuncString(strExpress); int leftSquareBracket = funstring.FindOp(0, '['); int rightSquareBracket = funstring.FindOp(0, ']'); int leftBracket = funstring.FindOp(0, '('); int rightBracket = funstring.FindOp(0, ')'); int commaSymbol = funstring.FindOp(0, ','); int semicolon = funstring.FindOp(0, ';'); if (commaSymbol == -1 && semicolon == -1) { dt = DataType.EXP; cd = new ExpData(strExpress); (cd as ExpData).GetValueFinal(); return(dt); } if (semicolon != -1) { dt = DataType.MATRIX; ConvertToMatrix(); return(dt); } if (commaSymbol != -1) { dt = DataType.BLOCK; ConverToBlock(); return(dt); } return(dt); }