Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wurzeln Wie schreibt man die (https://www.delphipraxis.net/80472-wurzeln-wie-schreibt-man-die.html)

Axxus 10. Nov 2006 16:28

Re: Wurzeln Wie schreibt man die
 
Hä es ist mir unbegreiflich aber du hast recht z1 ist wirklich negativ :?: :?: :?: :?: :?: :?: :?: :?:
Aber wieso wirde der wert negativ weenn x und y positiv sind das ergibt keinen sinn

Hat einer dafür ne erklärung

zahor 10. Nov 2006 17:02

Re: Wurzeln Wie schreibt man die
 
na wenn du's positiv haben willst dann mach es mal mit der funktion (abs(x):
Delphi-Quellcode:
z := sqrt(abs(z1));
oder vielleicht geht es auch so, kann ja an delphi liegen:
Delphi-Quellcode:
z := sqrt(x*x + y*y);
musste mal probieren.

3_of_8 10. Nov 2006 17:04

Re: Wurzeln Wie schreibt man die
 
Setz mal nen Breakpoint auf die sqrt-Zuweisung und drück Strg+F7 und lass dir die Werte von x, y und z1 ausgeben.

zahor 10. Nov 2006 17:29

Re: Wurzeln Wie schreibt man die
 
oder geh auf "überwachte ausdrücke" (Menüpunkt ansicht o.ä.)
und füge x, y, z1 hinzu
und mach's dann mit f7 immer weiter

stz 10. Nov 2006 17:36

Re: Wurzeln Wie schreibt man die
 
Hallo zusammen,
36001600000000 = 30000*30000+40000*40000 = z1 ist deutlich außerhalb von -2147483648..2147483647 und das ist alles, was ein Integer verkraften kann. Wenn man die entsprechende Exception deaktiviert hat, überprüft Delphi nicht, ob sich alle Zahlen in einem Integer in diesem Bereich befinden. Gelangt man außerhalb dieses Bereiches, stehen im betroffenen Integer irgendwelche lustigen Zahlen. Meistens negative. :wink:

Gruß
Malte

3_of_8 10. Nov 2006 17:49

Re: Wurzeln Wie schreibt man die
 
Da hast du Recht.

Einfach die Deklaration von z1 in Extended ändern und du kannst da Zahlen reinspeichern wie bekloppt.

Achja: Bei einer Multiplikation dürften sich positiv-negativ so ziemlich die Waage halten.

Axxus 10. Nov 2006 17:56

Re: Wurzeln Wie schreibt man die
 
is das auch bei Extended so denn wenn ich z1 als solchen deklariere dann passiert es immer noch z1 is dann -179343562632 oder so^^
jedenfalls tritt der fehler bei Extended auch noch auf wenn das auch zu klein ist habt ihr dann nen typ der richtig große Zahlen verkraften kann ich will mit dem programm eig dem Benutzer ne unendlich große anzahl an pythagoräischen zahlen liefern können und wenn schon 1.000.000*1.000.000 + 1.000.000*1.000.000 = 2*10^12 ist was is es dann erst bei 1.000.000.000 ^^ ich frag mich wie lange der rechenr dafür bracueh wird^^ jedenfalls gibt es einen typ der groß genug ist :?: :?: :?:

stz 10. Nov 2006 18:02

Re: Wurzeln Wie schreibt man die
 
Laut OH kann Extended -3,6 x 10^4951 .. 1,1 x 10^4932 fassen bei einer Genauigkeit von 10 bis 20 Stellen. Das müsste also eigentlich langen...

Gruß
Malte

jfheins 10. Nov 2006 18:05

Re: Wurzeln Wie schreibt man die
 
Versuch erstmal, Int64 zu verwenden, der kann schonmal signifikant größere Zahlen verarbeiten, und noch größere Ganzzahlen werden sehr kompliziert ...

Hawkeye219 10. Nov 2006 18:10

Re: Wurzeln Wie schreibt man die
 
Delphi-Quellcode:
z1 := x * x + y * y;
Wenn x und y als Integer-Variablen vereinbart werden, wird die rechte Seite immer einen Integer-Wert liefern - unabhängig vom Typ der Variablen z1.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz