Summanten und Koeffizienten
-
Hallo,
Ich habe hier ein Programm, dass bereits Formeln mit Koeffizienten mit Exponenten ausrechnen kann. Es fragt erst nach dem Term (z.B. 2,5*x^3,4) und dann nach dem xWert. Dann sucht er in dem Term nach einem Koeffizienten, guckt nach, ob ein Komma existiert und sucht danach nach dem x samt ^ und der darauf folgenden Zahl, also dem Exponenten (auch mit Kommazahl). Das Programm ist ansonsten selbsterklärend, denke ich. Wenn nicht stellt mir Fragen.
Mein Vorhaben ist nun, dass ich mit einzelnen Summanten rechnen kann, also einen Term wie 2*x+x^2 eingeben kann. Könnt ihr mir da weiterhelfen? Meine Versuche sind bisher alle fehlgeschlagen.
Vielen Dank im Vorraus
ANYmonKEY//--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include <iostream.h> #include <math.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused char term[80]; int pos = 0; double arg, wert, d = 0.1, koeff; //Ist an der Stelle pos eine Zahl? int isnumber() { if(term[pos] < '0') return 0; if(term[pos] > '9') return 0; return 1; } //Koeffizienten bestimmen double koeffizienten() { while (term[pos] != '*' && term[pos] != 'x') { switch (term[pos]) { case '*': pos++; break; //Welche Zahl? case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': koeff = koeff*10 + (term[pos]-'0'); pos++; break; //Dezimalzahl als Koeffizient case '.': pos++; while (isnumber()) { koeff += (term[pos]-'0')*d; d *= 0.1; pos++; } break; } } return koeff; } main() { double exp=0; cout<<"\nTerm eingeben: "; cin>>term; cout<<"\n\x eingeben: "; cin>>arg; //Koeffizient bestimmen koeffizienten(); while(term[pos] != '\0') { switch(term[pos]) { //x-Wert auslesen: case 'x': wert = arg; break; //Exponent auslesen: case '^': pos++; while(isnumber()) { exp = exp*10 + (term[pos]-'0'); pos++; } //Dezimalzahl als Exponent case '.': pos++; while (isnumber()) { exp += (term[pos]-'0')*d; d*= 0.1; pos++; } break; } pos++; } if (koeff == 0) koeff = 1; wert = koeff * pow(arg,exp); cout<<"\n\tWert: "<< wert; getch(); } //---------------------------------------------------------------------------
-
Hallo,
nur mal eine frage zum prog. ich habe keine #include <vcl.h>.
aber es leuft trozdem plos wen ich was eingebe dan kan ich hier warten und es pasirt nichts auser das es 50% der prozerauslastung hat.was mach ich den falsch?
MFG TaccoGo
-
ok jetzt get es.
wegen den summiren
wie were es wen du den string beim + trenst dan die eine siete rechnen im dem prog. und dan die ander und vor der ausgabe adiren.MFG TaccoGo