Autor Beitrag
sisc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D3 Prof
BeitragVerfasst: Mi 29.06.05 17:04 
Hi!
Ich bin gerade dabei ein Programm zu schreiben, das Wurzeln sehr genau ausrechnen soll. Ich will das Heron-Verfahren benützen. Ich habe hier nur ein Problem. Ich will mehr als Stellen ausrechnen als ich mit Extended überhaupt speichern kann. Wie kann ich neue Datentypen deklarieren?
Danke für Eure Antworten im Voraus!
Gruss
sisc
:roll: :roll: :roll: :roll:


Moderiert von user profile iconraziel: Topic aus Algorithmen, Optimierung und Assembler verschoben am Mi 29.06.2005 um 18:25
Micho
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 30.06.05 13:19 
Ich befürchte, dass du das "zu Fuß" machen musst:
Also z.B. einen Record-Datentyp definieren, mit Mantisse als array, den Exponenten als Integer und ein Vorzeichen als Boolean. Anschließend musst du dann Additionen, Multiplikationen etc. selbst implementieren.

Am einfachsten wäre eine Mantisse als String, die direkt die Ziffern enthält, so dass du die Mantisse direkt ausgeben kannst. Der Exponent wäre dann zur Basis 10.

Wenn es flotter laufen soll, wäre eine Mantisse als array of byte denkbar, so dass der Exponent zur Basis 256 ist. In diesem Fall wäre aber die Ausgabe der Zahl sehr aufwendig.

Am einfachsten und gleichzeitig am schnellsten wäre wahrscheinlich, wenn du keine Fließkommazahlen konstruierst, sondern einen Pseudo-Integer-Datentyp als array, der das ganzzahlige Vielfache einer kleinen Zahl angibt, also z.B. einen String[255] von Ziffern, wobei man sich an der 100sten Stelle immer ein Komma denkt.

Oder irgendwie sowas ...

Was auch immer, an der Implementierung der Grundrechenarten wird man nicht vorbei kommen.

Gruß,
Micho
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 30.06.05 15:02 
Wenn Dir beliebig große Ganzzahlen ausreichen empfehle ich einen Blick auf die Klasse Suche in: Delphi-Forum, Delphi-Library TBIGNUM (von mir) (zum Verdeutlichen des Prinzips). Eine fertige Klasse mit Nachkommastellen hat Hagen Reddmann (DP-Nick negaH) in der DP bereits veröffentlicht.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
sisc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D3 Prof
BeitragVerfasst: Sa 09.07.05 16:07 
Danke!!!! :roll: :roll: :roll: :roll: :roll: