Negative Zahlen in einer Schleife
-
Dein Array A besitzt die Elemente 0..29. Du greifst aber auf das Element A[-15] zu. Dadurch erzeugt Deine Anwendung undefiniertes Verhalten.
-
mmh...und wie vereinbart man ein Variablenfeld von -15 bis 15????
-
gar nicht.
void __fastcall TForm1::FormCreate(TObject *Sender) { int A[30]; int CGM = 587.88; int R = 15; for (int I = 0; I<30; I++) { R=15; A[I] = (CGM * R) / pow(pow(R, 2) + pow(I - 15, 2), 0.75); StringGrid1->Cells[0][0] = "--------------------"; StringGrid1->Cells[1][0] = "Wert für V"; StringGrid1->Cells[0][I+15] = "Y = " + FloatToStr (I - 15); StringGrid1->Cells[1][I+15] = FloatToStrF (A[I], ffNumber, 8, 2); } }
BTW, Was machst Du mit pow(, 0.75)? Riecht ein bisschen nach ziehen von Wurzeln aus negativen Werten.
-
ich seh da keine Wurzeln aus negativen Zahlen! Das ist schon richtig so!!
Vielen Dank für eure Hilfe
lg, freakC++
-
void __fastcall TForm1::FormCreate(TObject *Sender) { int CGM = 587.88;
ISt int nicht ganzzahlig? Vielleicht solltest du mit double arbeiten. Also auch
double A[30]
mfg
-
freakC++ schrieb:
ich seh da keine Wurzeln aus negativen Zahlen! Das ist schon richtig so!!
Vielen Dank für eure Hilfe
lg, freakC++
und was ist das für I<15?
pow(I - 15, 2)
-
So, ne kleine Mathestunde:
Wenn ich eine negative Zahl quadriere, dann kommt immer eine positive Zahl herus!! Daher kann in dieser Funktion keine negative Zahl herauskommen und daher kann ich einen reelen Exponenten nutzen!!!!!A[I] = (CGM * R) / pow(pow(R, 2) + pow(I - 15, 2), 0.75);
So, ich hoffe, dass ihr verstanden habt, dass ich recht habe
lg, freakC++PS: Code Tags ham irgendwie net gefunzt!!!
-
freakC++ schrieb:
PS: Code Tags ham irgendwie net gefunzt!!!
Das liegt an den zusätzlichen Formatierungstags die du im Code hast.
A[I] = (CGM * R) / pow(pow(R, 2) + pow(I - 15, 2), 0.75);
bis bald
akari
-
Entschuldigung, da habe ich wohl nicht richtig hingeschaut.
Wenn ich ein pow sehe denke ich halt nicht an Quadrieren, da das ja der blanke Overkill ist.
-
freakC++ schrieb:
So, ne kleine Mathestunde:
Wenn ich eine negative Zahl quadriere, dann kommt immer eine positive Zahl herus!!Darum ging es doch gar nicht. pow(x,.75) heißt x^(3/4). Die Frage ist doch, ob die Summe der beiden Quadrate, die x bilden negativ wird. Wenn das der Fall ist, ermittelst Du das Kubik von x, welches dann ebenfalls negativ wäre und dann die 4. Wurzel aus dieser negativen Zahl... .
Aber die Summe der beiden Quadrate wird nicht negativ, Braunstein hat wohl übersehen, dass ich die Schleifenvariable bei 0 und nicht bei -15 starten lasse, denn dann hätte er recht!
-
witte schrieb:
Die Frage ist doch, ob die Summe der beiden Quadrate, die x bilden negativ wird.
Hi,
ich will mich ni einmischen, aber wie soll denn aus zwei positiven Werten - die zwangsläufig positiv sind wenn der negative Wert quadriert wird - was negatives werden?
mfg, Micha!
-
Yep, das stimmt. OMG, ich brauche Urlaub!
-
witteDarum ging es doch gar nicht. pow(x,.75) heißt x^(3/4). Die Frage ist doch, ob die Summe der beiden Quadrate, die x bilden negativ wird.
[/quote]
Aber in diesem Fall kann die Summe nicht negativ werden!!! das ist der Knackpunkt!! Sonsthättest du natürlich recht!!lg, freakC++