Entwickler-Ecke

Freeware Projekte - Komplexe Zahlen und Brüche mit überladenen Operatoren


Kroko - Fr 01.02.08 11:04
Titel: Komplexe Zahlen und Brüche mit überladenen Operatoren
Ich habe, angeregt durch mehrere Threads, mal eine Unit programmiert, welche das Rechnen mit komplexen Zahlen realisiert.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  A,B,C: TComplex;
begin
  A.Create(2,3);
  B.Create(4,5);
  C := A+B; //C=6+8i

Beispielprogramm ist angehängt, Quellen ebenfalls
* Version 2.0
- Operatoren x, -, *, / überladen
- Float,String nach TComplex
- TComplex nach String
- komplexe Null, konjugiert komplexe Zahl
- Betrag, Betrag²
- Reziproke, Skalierung
- Test, ob reelle Zahl
- Winkel zur X-Achse, Polarkoordinaten
- Funktionen
= Sinus, Kosinus, Tangens, Kotangens
= Quadrat, Quadratwurzel, Reziprokes
= Ln, Exp und Power


nagel - Fr 01.02.08 15:26

Korrigier mich, wenn ich mich täusche, aber dafür ist doch schon eine Unit bei Delphi dabei. VarCmplx heißt die iirc.


Kroko - Fr 01.02.08 15:41

ja, aber die basiert auf Variants und sollte geschwindigkeitsmäßig unterliegen(hoffentlich, ungetestet)!


nagel - Fr 01.02.08 15:45

Ah ja, dann hört sich das ja ganz interessant an.


Kroko - Mo 04.02.08 16:57

Und jetzt noch eine zweite Unit über Brüche dazu:
zum Beispiel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
  X,Y,Z: TBruch;
begin
  X := '2/1/5';
  Y.Create(2,3);
  Z := X+Y;
  Z := X-Y;
  Z := X*Y;
  Z := X/Y;
end;


* Version 1.0
- Operatoren x, -, *, / überladen
- Float,String nach TBruch
- String im Format: Ganzer Teil/Zähler/Nenner möglich
- TBruch nach String
- Funktionen
= Sqr; Rcp, Abs
- Procedure PaintBruch