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 😉


Anmelden zum Antworten