Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

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)

mkinzler 10. Nov 2006 18:15

Re: Wurzeln Wie schreibt man die
 
Um beliebig große (Integer-)Zahlen speichern u können brauchst du einen sogennaten VLI (Very Long Integer)
http://www.lang-ib.de/Delphi-Ecke/Tr...s/vli/vli.html
http://www.gk-informatik.de/oop/vlint.html

3_of_8 10. Nov 2006 18:19

Re: Wurzeln Wie schreibt man die
 
Hmm, seltsam...

mkinzler 10. Nov 2006 18:21

Re: Wurzeln Wie schreibt man die
 
Zitat:

Zitat von 3_of_8
Sicher?

Wen meinst du jetzt?

3_of_8 10. Nov 2006 18:22

Re: Wurzeln Wie schreibt man die
 
Hawkeye. ;)

Hab aber rausgefunden, dass es tatsächlich so ist, wobei ich gedacht hätte, dass der Compiler intelligent genug ist, um das zu merken.

Schließlich führt er einen impliziten Cast aus und kann dann auch gleich mit Extended rechnen.

hoika 10. Nov 2006 18:25

Re: Wurzeln Wie schreibt man die
 
Hallo 9. Klasse (undeutlich erinner ;))

ungültige Gleitkommaoperation.
Deine Zahlen sind zu gross vom Wertebereich her.
Oder zu ziehst eine Wurzel aus einer negativen Zahl.

Byte kann z.B. nur 256 Zahlen.
Was hast du denn für einen Variablentyp ? Double ?

Tipp mal in der Hilfe Extended ein,
dann siehst, wie gross die jeweiligen Zahlen werdne dürfen.

In deinem Fall würde ich direkt Extended statt Double probieren.


Heiko

inherited 10. Nov 2006 18:32

Re: Wurzeln Wie schreibt man die
 
Zitat:

Zitat von hoika
Hallo 9. Klasse (undeutlich erinner ;))

ungültige Gleitkommaoperation.
Deine Zahlen sind zu gross vom Wertebereich her.
Oder zu ziehst eine Wurzel aus einer negativen Zahl.

Byte kann z.B. nur 256 Zahlen.
Was hast du denn für einen Variablentyp ? Double ?

Tipp mal in der Hilfe Extended ein,
dann siehst, wie gross die jeweiligen Zahlen werdne dürfen.

In deinem Fall würde ich direkt Extended statt Double probieren.


Heiko

Schon mal was von dem Wort "lesen" gehört? Das wurde alles schon gesagt ~.~^^

Cöster 10. Nov 2006 19:48

Re: Wurzeln Wie schreibt man die
 
Delphi-Quellcode:
z1 := x*x + y*y;
z := sqrt (z1);
Das ließe sich optimieren:

Delphi-Quellcode:
z := Hypot(x, y);
Unit Math einbinden nicht vergessen.

rayman 10. Nov 2006 20:11

Re: Wurzeln Wie schreibt man die
 
Ich glaube du kommst da mit einem anderen Ansatz besser:

Die Tripel kann man nämlich auch ausrechnen!

Du suchst dir einfach beliebige Zahlen a und b, wobei b immer kleiner sein sollte als a. Dann kannst du dir die 3 Zahlen ausrechnen:
x := a*a - b*b;
y := 2 * a*b;
z := a*a + b*b;

für a=2 und b=1 kriegst du z.B.
x=3, y=4 und z=5

Also nimm zwei Schleifen ineinander (so wie du's jetzt auch hast) für a und b und dann rechnest du die tripel alle nacheinander aus. Da brauchst du keine Wurzeln und es dürfte wesentlich schneller gehen.

gruß raYman

Axxus 10. Nov 2006 21:08

Re: Wurzeln Wie schreibt man die
 
ich kann x und y aber nur als integer vereinbarren da ich eine for do Schleife hab und die Variable muss von ordinarem wert sein (ich weiß zwar net (mehr) was ordinar ist aber ich glaub das es ne ganzzahl sien muss oder?) jedenfalls geht das net
mmh was mach ich

3_of_8 10. Nov 2006 21:24

Re: Wurzeln Wie schreibt man die
 
Ordinal heißt das, und das bedeutet, es muss ein ordinaler Typ sein. Ordinaltypen sind zum Beispiel Ganzzahlen außer Int64 und Aufzählungstypen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
Seite 4 von 5   « Erste     234 5      

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