double Get_E () { double val1 = Get_T (); while (*EXPR_PTR == '+' || *EXPR_PTR == '-') { int oper = *EXPR_PTR; EXPR_PTR++; double val2 = Get_T (); switch (oper) { case '+': { val1 += val2; break; } case '-': { val1 -= val2; break; } } } return val1; }
int Get_E (double* result) { double val = 0; int ret = Get_T (&val); while (*CUR == '+' || *CUR == '-') { int op = *CUR; CUR++; double val_2 = 0; ret = Get_T (&val_2); switch (op) { case '+': val += val_2; break; case '-': val -= val_2; break; default: return ERR_CALL_GET_E; break; } } *result = val; return HAPPY; }
int Get_T (node* tree) { int err_index = 0; ASSERT_TREE_OK (tree); Tree_Add_Left (tree, Node_NEW()); Tree_Add_Right (tree, Node_NEW()); int ret = Get_D (tree -> left); if (ret != HAPPY) if (ret == 0) return ret; tree -> type = MATH_OP; tree -> op = (*CUR) -> op; if ((*CUR) -> op == MATH_OP_MUL || (*CUR) -> op == MATH_OP_DIV) { CUR++; Get_T (tree -> right); } node* new_tree = tree -> left; if (tree -> right -> type == 0) { Tree_Replace_Left (tree); ASSERT_TREE_OK (new_tree); return HAPPY; } ASSERT_TREE_OK (tree); return HAPPY; }
//--------------------------------------------------------------------------- void __fastcall TfrmSignsReports::MakeHeaderFile(TADOCommand *DbfCommand, __int32 MinL, __int32 MaxL) { DbfCommand->CommandText = "create table rep_str (title char(100), begin char(100), end char(100), roaddist char (100), roaddist_i char (100), depdist char (100), depdist_i char (100), depdist_t char (100),depcheef char (100))"; DbfCommand->Execute(); DbfCommand->CommandText = "insert into rep_str (title, begin, end, roaddist, roaddist_i, depdist,depdist_i,depdist_t,depcheef) values ('" + FRoadFrm->RoadName+ "','"+FormatPlacement(MinL)+ "', '" + FormatPlacement(MaxL) +"','"+ txtRoadDistr->Text+"','"+Get_I(txtRoadDistr->Text)+"','"+txtDepDistr->Text+"','"+Get_I(txtDepDistr->Text)+"','"+ Get_T(txtDepDistr->Text)+"','"+txtDepCheef->Text+"')"; DbfCommand->Execute(); }