Warum kein Ergebniss?
-
ok kann geclosed werden....bin grad selber draufgekommen... aber danke an alle, die es vielleicht auch grad eben versuchen.
mfg Lead
-
trotzdem
also 1. benutze bitte "C/C++" um code zu posten2. Dev-Cpp ist veraltet und wird nicht mehr entwickelt. Ich empfehle dir eine aktuelle IDE + Compiler wie z.B. NetBeans, CodeBlocks oder Visual Studio 2008 Express Edition.
-
ups...nein hat doch nicht geklappt...sorry
Und danke für die Hinweise.
Zu 2. :
Das Programm soll mit Bloodshed kompilierbar sein.
-
ich bin jetzt mal schnell drübergeflogen aber leider kenne ich mich nicht besonders gut mit arsinh aus:
du hast eine endlosschleife drin wenn x<0 oder x>1 ist:
while (x<0 || x>1)/*hier müßte eine anweisung/block stehen um x zu verändern*/;Ganz algemein empfehle ich einen debugger.
btw: unten sehe ich das du als vergleichlog(...) hast. Müßte da nicht eigtl. ln(...).
stehen?
-
Fencer schrieb:
btw: unten sehe ich das du als vergleichlog(...) hast. Müßte da nicht eigtl. ln(...).
stehen?ist ok mit log.
der ln heißt in c log.
http://www.cplusplus.com/reference/clibrary/cmath/log.html
-
stimmt... jetzt erinnere ich mich das ich mich da schon mal drüber aufgeregt hatte.

sorry
-
hmm ja mit ln passiert nichts.
Der Debugger hilft mir grad auch ned wirklich weiter.
-
ich mein keinen Debugger auf Assemblerebene sondern einen mit dem du den Quellcode zeile für zeile durchgehen und dir dabei die Werte der Variablen anschauen kannst. Mir hat es schon bei vielen "Mysteriösen" Problemen geholfen
Jede moderne IDE bietet dir so eine möglichkeit an.Ansonsten mach mal ein paar Zwischenausgaben um zu schauen welche werte er wo hat bzw. wo er stecken bleibt
-
1. Alle Variablen am Anfang zu deklarieren ist suboptimal
2. Schau dir mal ghinten genauer an
-
Also der Debugger vom veralteten Bloodshed ist nicht dazu zu gebrauchen?
@nobody23: Sorry ich komm ned drauf was mit ghinten nicht stimmen sollte.
Hab jetzt meinem Kumpel das mal geschickt. Danach hat er mir diesen Quellcode geschickt:
#include <iostream> #include <cmath> using namespace std; int main () { double x; double epsilon; double erg,gvorne,ghinten; double zaehler,nenner,vnenner; int vz, dfakn,dfakz; bool epsilonunter; cout << "Dieses Programm berechnet fuer die Funktion arsinh(x) den zugehoerigen y-Wert im Bereich |x| < 1"<<endl; cout << "Geben Sie ein, dem Wertebereich entsprechenden, Wert fuer x ein" <<endl; do { cout<<"x= " ; cin>>x; if (x < 0 || x >= 1) {cout<<"x muss zwischen 0 und 1 (ausgeschlossen) liegen"<<endl; }} while (( x < 0 || x >= 1)); epsilon=0.00000001; vz=1; dfakz=1; zaehler= dfakz *x *x *x; dfakn=2; nenner= dfakn *(dfakn +1); gvorne= -vz * (zaehler/nenner); erg= x + gvorne; epsilonunter= false ; do {zaehler = zaehler *x *x *(dfakz + 2); dfakz = dfakz + 2; nenner = nenner / (dfakn + 1) * (dfakn + 2) * (dfakn + 3); dfakn = dfakn + 2; ghinten= vz * (zaehler/nenner); vz = vz * (-1); if ((fabs(gvorne - ghinten) < epsilon)) { epsilonunter = true; } else { erg = erg + ghinten; gvorne = ghinten; } } while (epsilonunter == false || ((dfakn/2) < 11)); cout<<"arsinh (x) = "<<erg<<endl<<endl; cout<<"Vergleich: arsinh("<< x <<") = "<<log (x + sqrt( x * x+1 ))<<endl; system("Pause"); }der myteriöserweiße genau der Selbe ist eigentlicht, jedoch funktioniert er nach dem Kompilieren fehlerfrei...
Hmmm komisch...
-
nicht ganz zeile 28 x>**=**1
-
Hmm ja stimmt aber das hat leider keine Auswirkung

-
Zeile 47: gvorne = -vz * (zaehler/nenner);