![]() |
Re: Brüche kürzen- wieder einmal
Also unter formatiert verstehe ich zwar etwas anderes, habe es mir aber tortzdem mal angeschaut. Du hattest einen Fehler in der Procedure Kuerze, so müsste sie richtig aussehen:
Delphi-Quellcode:
Du kannst den Befehl mod nicht auf den Typ real anwenden, sondern nur auf Ganzzahlen wie Integer, Byte und Word.
Procedure TForm1.kuerze(a,b:real;var c,d:real);
var teiler:real; begin teiler:=a; while (frac(a/teiler) <> 0) or (frac(b/teiler) <>0) do // mod mit frac ersetzt teiler:=teiler-1; c:=a/teiler; d:=b/teiler; end; Ob dein Programm durch meine Veränderung richtige Werte liefert habe ich aber nicht überprüft. Flare |
Re: Brüche kürzen- wieder einmal
Hallo,
das ist wie Augenpulver: Edit1 und Edit2 sind nunmal keine leicht zu lesenden Komponentennamen. Außerdem musst du nicht alle möglichen Teiler probieren, wenn du zuerst den größten gemeinsamen Teiler bestimmtst:
Delphi-Quellcode:
Du musst dir aber zuerst mal ein Konzept ausdenken, exakt wann du von Integer- auf Float-Arithmetik wechselst.
function GCD(n1, n2: Integer): Integer;
begin if n2 = 0 then Result := n1 else Result := GCD(n2, n1 mod n2); end; procedure Normalize(var Numerator, Denominator: Integer); var n: Integer; begin if Numerator <> 0 then begin n := GCD(Numerator, Denominator); Numerator := Numerator div n; Denominator := Denominator div n; if Denominator < 0 then begin Numerator := - Numerator; Denominator := - Denominator; end; end else begin Numerator := 0; Denominator := 1; end; end; Freundliche Grüße vom marabu |
Re: Brüche kürzen- wieder einmal
JAAA FLARE DANKE DANKE DANKE!!! DAS WARS WAS ICH BRACUHTE!!!! :hello: :hello: :hello: :hello: :hello: :cheers:
:dp: :dp: :dp: :dp: :dp: edit: wie kann ich die Markierung dieses threads als "Offene Frage" ausschalten!? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 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