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 |
Re: Wurzeln Wie schreibt man die
Hmm, seltsam...
|
Re: Wurzeln Wie schreibt man die
Zitat:
|
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. |
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 |
Re: Wurzeln Wie schreibt man die
Zitat:
|
Re: Wurzeln Wie schreibt man die
Delphi-Quellcode:
Das ließe sich optimieren:
z1 := x*x + y*y;
z := sqrt (z1);
Delphi-Quellcode:
Unit Math einbinden nicht vergessen.
z := Hypot(x, y);
|
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 |
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 |
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. |
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