.| Autor | Beitrag |
|---|---|
|
000 10.09.2001, 16:14 Son-Goten |
hi leutz! würde mich freuen, wenn jemand einem kleinen, unterbelichteten c++-newb helfen könnte ;) mfg danke im voraus!!! -- |
|
Profil || Suche |
|
001 10.09.2001, 17:18 Sccar |
moinsen zwei möglichkeiten: schreib die funktion WURZEL, die mit hilfe von interval rechnung (solltest du in mathe gelernt haben) die wurzel eingrenzt (nicht ganz einfach). oder du bindest einfach die bibliothek "math.h" ein, in denen andere menschen möglichkeit 1 in der funktion sqrt() umgesetzt haben. sccar --...das is zwar der uebelst gehackteste kleine bastard, den ich je gesehen habe, aber dafuer sauschnell. {Tron} |
|
Profil || Suche |
|
002 10.09.2001, 17:49 Prefect |
Übrigens haben da andere Menschen nicht Möglichkeit 1 umgesetzt. sqrt() greift nunmal auf die FPU (also Hardware) zurück. Dennoch wäre es irgendwie interessant, zu wissen, wie die FPU denn nun die Wurzel eigentlich berechnet. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
003 10.09.2001, 19:43 tommsch |
nie wurzel rechnen gelernt? "Wenn schon Sklave, dann überzeugter Sklave" - Steindl über techn. Zeichner |
|
Profil || Suche |
|
004 10.09.2001, 22:11 terrorgen |
nimm den windows taschenrechner und quadrier solang zahlen bis das ergebnis einigermaßen passt der rest ist rundungsfehler ;-) wie gesagt bisl schwund is immer !!! --- alle Angaben sind wie immer ohne Gewähr |
|
Profil || Suche |
|
005 12.09.2001, 14:27 Crack-Tom |
So lernen wir es bis jetzt in der Schule, immer in Intervallen eingrenzen bis der Kasten klein genug ist und man ein vernünftiges Ergebnis hat. Diese freeware-compilernamen verwirren mich; MingW32, DEVCPP, JPEG.....
|
|
Profil || Suche |
|
006 12.09.2001, 16:34 Son-Goten |
steht doch oben: sqrt(A*B) ;) hmm.... ich werd aber mal zur übung selbst ne funktion schreiben ;) achso.. dann noch was: ich kann pi jetzt berechnen lassen, allerdings ergibt sich dabei aufgrund des zu geringen speichers, den float reserviert (nehme ich zumindest mal an...), auch bei "printf("fuer Bn %.30f .\n",Bn);" nach 16 stellen eine reihe von nullen ( x.xxxxxxxxxxxxxxxx00000000000000 <------ wobei x für irgendwelche zahlen steht ;) )... desweiteren wüsste ich gerne, ob ich nicht die .30 weglassen und dafür sorgen kann, dass er pi immer so viel speicher, wie benötigt, reserviert. danke im voraus (mir würde auch ein link o.ä. (hoffe ich) reichen) goten --Dieser Beitrag wurde am 12.09.2001 um 16:34 von Son-Goten bearbeitet. |
|
Profil || Suche |
|
007 12.09.2001, 18:07 Sccar |
moinsen @prefect rein theoretisch kann auch die fpu das net anders machen, nur vielleicht etwas optimierter. oder gibt es eine andere möglichkeit (mathematisch) an eine wurzel zu kommen (sagt bloss net taschenrechner:) @Crack-Tom mach einfach eine endlos schleife, die immer wieder eine intervall schachtelung durchführt und das ergebniss bei der gewünschten genauigkeit zurückgibt. cu sccar --...das is zwar der uebelst gehackteste kleine bastard, den ich je gesehen habe, aber dafuer sauschnell. {Tron} |
|
Profil || Suche |
|
008 12.09.2001, 18:48 Prefect |
@Sccar: Natürlich sag ich nicht Taschenrechner *g* allerdings wäre tumbes Eingrenzen glaube ich viel zu ineffizient. Ich habe mir mal da so Annäherungsformeln hergeleitet, die ich jetzt leider nicht mehr im Kopf habe. Man könnte aber wohl z.B. mit so ner Art Lookuptable die Wurzelschleife beschleunigen. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
009 12.09.2001, 18:52 Sccar |
ne erläuterung wäre net schlecht. (vielleciht mit zeichnung *sabber*) --...das is zwar der uebelst gehackteste kleine bastard, den ich je gesehen habe, aber dafuer sauschnell. {Tron} |
|
Profil || Suche |
|
010 12.09.2001, 18:55 Son-Goten |
@sscar und jetzt auf deutsch ;) while(Wurzel*Wurzel<Quadrat) if(Wurzel*Wurzel>Quadrat) while(Wurzel*Wurzel<Quadrat) ich weiß, ich weiß: dem experten oder halb-profi gefällt sowas sicher gar nicht, aber ich weiß nun mal nicht, wie ich deinen vorschlag in die tat umsetzen kann ;) -- |
|
Profil || Suche |
|
011 12.09.2001, 19:35 Sccar |
moinsen so sieht eine mögliche wurzel funktion aus: double wurzel(float no) if(no < 0) for(i=0;i<16;i++) } return reVal; funktioniert auch richtig sccar --...das is zwar der uebelst gehackteste kleine bastard, den ich je gesehen habe, aber dafuer sauschnell. {Tron} |
|
Profil || Suche |

