Generator für Nullstelle
-
Wie ermittelt man die erste Nullstelle einer Funktion.
Das heißt, der Generator sucht sich durch durchlaufen des Wertebereichs die richtige Nullstelle (for-schleife).
Hab' bereits versucht. Nur beim hochzählen der Schleife habe ich Probleme.
Bsp.: for(int x=-3;x<10;x=x+0,1){}
Wieso hängt er sich andauernd auf. Genauso bei x+1.
Wär nett im Pseudocode besser noch richtiger Quellcode. Mir gleich.
P.S. für die XKoordinate setzt man dann die Pointervariable x ein (point.x=...)
-
Birkenstock+Polunder schrieb:
P.S. für die XKoordinate setzt man dann die Pointervariable x ein (point.x=...)
ähm, was soll das genau heissen???
ist x ein pointer auf eine variable ( int* x;) oder was???
denn so ( point.x) wäre x eine membervariable der klasse/struktur/was-auch-immer namens point...wenn du den pointer hochzählst, gibts in der tat probleme
-
-
Mal von der Qualität deines Verfahrens abgesehen ...
for(int x=-3;x<10;x=x+0,1)
x + 0 = x. Da kannst du das auch gleich weglassen. und "1" ist wohl mal kein gültiger Befehl. Wenn du die Dezimalzahl wolltest: Trennzeichen wäre hier der Punkt "."
for(int x = -3;x < 10;x += 0.1)
-
Pellaeon schrieb:
for(int x = -3;x < 10;x += 0.1)
Wobei das natürlich dann immer um 1 erhöht wird (und nicht 0,1)... und nebenbei auch noch eine Compiler-Warnung nach sich zieht:
warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
Also wenn schon so komisch, dann bite richtig komisch:
for(double x = -3;x < 10;x += 0.1)
-
Jochen Kalmbach schrieb:
Pellaeon schrieb:
for(int x = -3;x < 10;x += 0.1)
Wobei das natürlich dann immer um 1 erhöht wird (und nicht 0,1)
Ich würd sagen der erhöht um 0 nicht um 1. 0.1 dürfte ja ne 0 ergeben beim cast zu int.
Jo Copy and paste Fehler^^ Hab nicht auf den Typ geguggt, den er benutzt hat, sonder einfach den Schleifenkopf rauskopiert
-
Pellaeon schrieb:
Ich würd sagen der erhöht um 0 nicht um 1. 0.1 dürfte ja ne 0 ergeben beim cast zu int.
Hätte ich jetzt auch zuerst vermutet, aber ein Test mit VC7.1 het ergeben, dass er tatsächlich um 1 erhöht... ob dies nun so bei jedem Compiler ist bin ich überfragt
-
hab hier grad den 6er offen, Da tut er bis zur 0 hochzählen und da bleibt er dann hängen, is ja wirklich ne böse Falle^^
edit:
muss ja so sein^^
erst wird in double verwandelt, -3.0 + 0.1 = -2.9, das wird dann wieder in int gecastet -> -2, im positiven Bereich wird dann natürlich aus 0 + 0.1 = 0.1 -> cast zu 0
-
Ok, hast recht... soweit hab ich nicht debuggt