![]() |
Re: Zahl als Bruch speichern
Naja... ich geb zu ich hab es in C# 1:1 umgesetzt... beim Addieren eines Bruchs (-4/3) mit (1/3) hat es eine DivByZero Exception gehagelt. Beheben konnt ich das erst als ich die absoluten Werte für die GGT-Berechnung genommen hab.
:drunken: Die Sprachen mögen verschieden sein, aber die Arithmetik bleibt doch gleich... will ich zumindest meinen |
Re: Zahl als Bruch speichern
Warum sollte ich überhaupt eine Klasse dafür nehmen? Der Typ für den Bruch als Record und die entsprechenden Funktionen in einer Unit, sind für diesen Zweck vollkommen ausreichend.
Meiner Meinung nach ist eine Klasse sinnvoll, wenn Werte und Methoden damit zusammengeführt werden können, was hier nicht der Fall ist. Die Klasse TBruch ist nur eine Sammlung von Methoden, die ich wie o.g. verwalten kann. |
Re: Zahl als Bruch speichern
Zitat:
|
Re: Zahl als Bruch speichern
Zitat:
Jedenfalls bei mir arbeitet die GGT-Routine fehlerfrei, auch mit negativen Zahlen. |
Re: Zahl als Bruch speichern
bei mir klappts JETZT auch fehlerfrei... aber wenn ihr drüberschaun wollt, kann ich ja die .cs hier mit anhängen ;)
|
Re: Zahl als Bruch speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Dann will ich hier auch mal meine Version der Unit veröffnetlichen :mrgreen:
Das ganze baut auf einen erweiterten Record-Datentyp auf, ist also erst ab Delphi 2006 verfügbar. Das besondere sind die class Operatoren, welche eine einfache Handhabung der Variablen zur Verfügung stellen. Die einzelnen Instanzen müssen nicht zuerst mit Create erstellt und mit Free freigegeben werden! Beispiel:
Delphi-Quellcode:
procedure foo;
var A, B, C: TBruch; begin A := 3; // jetzt steht in A 3/1 B.Zaehler := 8; B.Nenner := 5; // jetzt steht in B 8/5 B := B + 1; // jetzt steht in B 13/5 C := B * A; // (13/5) * (3/1) = 39/5 C := C / 13; // C = 3/5 showmessage(FloatToStr(C)); // Fließkommazahl! 0,6 end; |
Re: Zahl als Bruch speichern
Liste der Anhänge anzeigen (Anzahl: 1)
ähnlich wie meins ;)
C# mit .NET 2 notwendig ein wenig anglifiziert das ganze... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz