AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl als Bruch speichern

Ein Thema von dino · begonnen am 21. Sep 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
Seite 6 von 6   « Erste     456   
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#51

Re: Zahl als Bruch speichern

  Alt 16. Okt 2007, 13:54
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.



Die Sprachen mögen verschieden sein, aber die Arithmetik bleibt doch gleich... will ich zumindest meinen
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#52

Re: Zahl als Bruch speichern

  Alt 16. Okt 2007, 15:03
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.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#53

Re: Zahl als Bruch speichern

  Alt 16. Okt 2007, 15:07
Zitat von Amateurprofi:
Zitat von alzaimar:
Bist Du dir sicher, das a*b div c identisch mit (b div c)*a ist?
Beispiel : a=3, b=4, c=3.
(a*b) div c
a*b = 12 div 3 = 4

(b div c)*a
4 div 3 = 1 * 3 = 3
@alzaimar:
Nein, im Gegenteil. Ich bin mir, so wie auch du, sicher daß "a*b div c" nicht identisch ist mit "b div c * a", und ich bin auch sicher daß die Konstrukte i.d.R. unterschiedliche Resultate bringen.
Du machst dem zweiten Teil deines Nicks alle Ehre
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.057 Beiträge
 
Delphi XE2 Professional
 
#54

Re: Zahl als Bruch speichern

  Alt 16. Okt 2007, 15:45
Zitat von cruiser:
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.


Die Sprachen mögen verschieden sein, aber die Arithmetik bleibt doch gleich... will ich zumindest meinen
Vielleicht hast du es nicht korrekt umgesetzt.
Jedenfalls bei mir arbeitet die GGT-Routine fehlerfrei, auch mit negativen Zahlen.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#55

Re: Zahl als Bruch speichern

  Alt 16. Okt 2007, 15:58
bei mir klappts JETZT auch fehlerfrei... aber wenn ihr drüberschaun wollt, kann ich ja die .cs hier mit anhängen
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#56

Re: Zahl als Bruch speichern

  Alt 16. Okt 2007, 20:29
Dann will ich hier auch mal meine Version der Unit veröffnetlichen
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;
Angehängte Dateien
Dateityp: pas ubrueche_199.pas (2,4 KB, 3x aufgerufen)
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#57

Re: Zahl als Bruch speichern

  Alt 16. Okt 2007, 23:20
ähnlich wie meins
C# mit .NET 2 notwendig

ein wenig anglifiziert das ganze...
Angehängte Dateien
Dateityp: zip fraction_133.zip (1,5 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 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