void NobracketString::simplifynumbers(){ //maybe need to delete the object I create here. for(int i = 0; i<somenumbs.size();i++){ string tempnumb = somenumbs[i]; if(tempnumb.find("^")<100 && tempnumb.find("log")>100){ /////this lines needs to go into Exponent* power = new Exponent(somenumbs[i]); somenumbs[i]=power->getAnswer(); if(power->canSimplifyToInt()){ type.push_back("int"); }else if(power->canSimplifyToFrac()){ type.push_back("frac"); }else{ type.push_back("exp"); } } else if(tempnumb.find("rt")<100){ nthRoot* power = new nthRoot(somenumbs[i]); //will do the simplification in constructor. somenumbs[i]=power->getSimp(); //get a string type if(power->canSimplifytoInt()){ type.push_back("int"); } else if(power->canSimpifytoFrac()){ type.push_back("frac"); }else{ type.push_back("root"); } } else if(tempnumb.find("/")<100 && tempnumb.find("p")>100){ //im each value, if it contains /, Fraction* fra = new Fraction(somenumbs[i]); somenumbs[i]=fra->getAnswer(); //change the vector number to the simplify number. tempnumb = fra->getAnswer(); if(fra->canSimplifytoInteger()) { //if it simplifies to int type.push_back("int"); } // put "int" in the vector type; else{ type.push_back("frac"); } } else if(tempnumb.find("log")<100){ Logs* lg = new Logs(somenumbs[i]); somenumbs[i]=lg->getSimplify(); if(somenumbs[i]==expression){ //if user enter a log only and it cannot be simplify // expression = lg->FinalSplit(); //try split it; if(somenumbs[i]==expression){ //if the log cannot be split, do nothing. }else{ somenumbs.erase(somenumbs.begin()); type.clear(); separateString(); simplifynumbers(); } } if(lg->canSimplifytoInt()){ //check if it can be simplified type.push_back("int"); //if it simplifies to int, put "int" to vector type; } else if(lg->canSimplifytoFra()){ type.push_back("frac"); //else if it simplifies to fraction, put "fra" to vector type; }else{ type.push_back("log"); ////cout<<"in the log to log here"<<endl; } } else if(tempnumb.find("Pi")<100||tempnumb.find("pi")<100){ type.push_back("pi"); } else if(tempnumb.find("e")<100){ type.push_back("e"); }else{ type.push_back("int"); } } }