F(x)=x^2+nx+n Funktion auseinander nehmen



  • Wie mach ich das am besten?



  • Mit std::string::find und std::string::substr.



  • Aus du dafür vielleicht eine seite die das gut erklärt?





  • bool polyProcessString(string iString, vector<double> &oFactors, vector<double> &oExponents)
    {
    string::size_type lastPos=0;
    while(true)
    {
    string::size_type pos=iString.find_first_of("+-",lastPos+1);
    if(pos==string::npos)
    {
    string sub=iString.substr(lastPos,iString.length()-lastPos);
    return polyProcessSum(sub,oFactors,oExponents);
    }
    string sub=iString.substr(lastPos,pos-lastPos);
    if(!polyProcessSum(sub,oFactors,oExponents))return false;
    lastPos=pos;
    }
    return true;
    }

    Ist das so richtig?



  • Hallo

    Eas gibt doch bereits Bibliotheken, die das können. Da must du mal bei google.de schauen.

    chrische



  • Ingless schrieb:

    Ist das so richtig?

    Kommt wohl drauf an, wie polyProcessSum aussieht. Hast du das selbst geschrieben?



  • bool polyProcessSum(string iSum, vector<double> &oFactors, vector<double> &oExponents)
    {
    MessageBox(NULL,iSum.c_str() ,"Test2" ,MB_OK);
    string::size_type posX=iSum.find("x");
    if(posX==string::npos)
    {
    oFactors.push_back(atof(iSum.c_str()));
    oExponents.push_back(0.0);
    }
    else
    {
    string::size_type posH=iSum.find("^");
    if(posH==string::npos)
    {
    oFactors.push_back(atof(iSum.substr(0,posX).c_str()));
    oExponents.push_back(1.0);
    }
    else
    {
    double tmp=atof(iSum.substr(0,posX).c_str());
    if(tmp==0.0) return false;
    oFactors.push_back(tmp);
    oExponents.push_back(atof(iSum.substr(posH+1,iSum.length()).c_str()));
    }
    }
    return true;
    }

    Ich hab schon lange gesucht abe rnoch keien Bibilothek gefunden.

    Hab das vor einigen tagen selber geschrieben. Läuft aber irgendwie nicht richtig.



  • Ingless schrieb:

    Hab das vor einigen tagen selber geschrieben.

    Tut mir leid, aber das nehme ich dir nicht ab. Wer das geschrieben hat, braucht keine Erklärungen für die Stringfunktionen.

    Läuft aber irgendwie nicht richtig.

    Lies meine Signatur.

    Es scheint noch Probleme zu geben, wenn man den Koeffizienten ganz weglässt. Aber ansonsten läuft das doch ganz gut.



  • Kann es sein das dieser "Fehler" der eigentlich nicht da sein sollte von dem Programm kommt mit dem ich Programmiere?

    Wir müssen Bordland benutzen und ich finde dieses Programm nicht gut.



  • Ingless schrieb:

    Kann es sein das dieser "Fehler" der eigentlich nicht da sein sollte von dem Programm kommt mit dem ich Programmiere?

    Da du immer noch nicht gesagt hast, wie dieser "Fehler" aussieht, kann ich da nur sagen: Vielleicht.


Anmelden zum Antworten