C++ => Formel eingeben .. ?

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_gt_formel_eingeben_17828/page_1 - zur Vollversion wechseln!


XeroXs schrieb am 15.11.2001 um 17:14

ok folgendes..

i schreib grad an am programm für die schule (argl ;).. und zwar tut des näherungsweise den flächeninhalt unter einer funktion berechnen (zwischen Xmin und Xmax werten)

soweit so gut.. geht auch alles... allerdings soll man die formel völlig unabhängig eingeben können

also den Y = <eingabe:formel>

das problem ist, das ich mit dem ja rechnen will... also das ich später echt sagen kann

X=1;
ergebnis = formel (die eingegeben wurde, mit X=1 berechnet)

also man gibt z.b. ein

(1/x²+4x)+6

und er kann dann später mit dem ganz normal ohne probleme rechnet...

also er bekommt einen wert und rechnet damit.. bekommt den nächsten etc...

wer hat ne idee?

thx ;)


twistn@z schrieb am 15.11.2001 um 17:34

speicher einfach die formel in einen string, danach ersetzt du in dem string alle x durch das was du halt willst und dann rechnest du mit der formel die du im string abgelegt hast.

alles klar?

mfg twistn@z


XeroXs schrieb am 15.11.2001 um 17:35

aeh

meinst du das so?

string einlesen (string)
x einlesen (float)

y=string;

y ausgeben

?


twistn@z schrieb am 15.11.2001 um 17:36

zuerst musst du im string natürlich noch die x ersetzen durch den derzeitigen wert mit dem du rechnen willst


XeroXs schrieb am 15.11.2001 um 17:46

hm und wie macht ma des?


twistn@z schrieb am 15.11.2001 um 18:07

also du hast beispielsweise:

int i = 20, k; // i = max. länge der formel
double xwert; //was xwert haben sollte musst du wissen =)
char formel[i];

printf("formel: ");
scanf("%s", formel);

for (k=0;k<=i;k++)
{
if (formel[k] == 'x')
formel[k] = xwert;
}


noch fragen?

twistn@z


XeroXs schrieb am 15.11.2001 um 18:52

thx :D mal testen


twistn@z schrieb am 15.11.2001 um 19:17

also ich bin überzeugt von meinem code :cool:

twistn@z


that schrieb am 16.11.2001 um 00:11

Zitat von XeroXs
soweit so gut.. geht auch alles... allerdings soll man die formel völlig unabhängig eingeben können

also den Y = <eingabe:formel>

Dazu brauchst du einen kompletten Parser und Ausdruck-Auswerter. Sowas ist gar nicht so trivial.
Schau dir mal
http://www.bloodshed.net/c/eval_expr.tar.gz
an.


twistn@z schrieb am 16.11.2001 um 09:46

wozu einen parser?
meine lösung funktioniert auch und ist einfacher.


twistn@z


that schrieb am 16.11.2001 um 10:18

Zitat von twistn@z
wozu einen parser?
meine lösung funktioniert auch und ist einfacher.

[ ] du hast das Problem verstanden
[ ] du hast deinen Code ausprobiert
[x] du hast einen seltsamen C++ Compiler


twistn@z schrieb am 16.11.2001 um 11:39

@that: naja du hast schon recht, mit dem was mein code macht kann man nicht so ohne weiteres rechnen, aber du hättest immerhin die formel in der das x schon ersetzt wurde, was du dann machst ist was anderes :D

ich hab auch nie gesagt dass man zb: y = formel; schreiben kann sondern ich hab nur den code für das ersetzen von x geschrieben, und der funktioniert in jedem compiler (ich verwende vc++ 6.0 btw.)

twistn@z


wobbo schrieb am 16.11.2001 um 11:59

jo oba jetzt muast die formel a no berechnen...
und mit an string rechnen dirft jo ned so afoch sei :rolleyes: :D


twistn@z schrieb am 16.11.2001 um 13:03

das wird auch nicht gehen :)

ich will mir jetzt aber keine gedanken mehr darüber machen da ich noch andere (wichtigere) sachen zum coden hab :D

twistn@z


XeroXs schrieb am 17.11.2001 um 13:35

hm geht ned ;)

was für ein wunder *lol*

mal das vom that anschaun... i meld mi :)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025