Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Brüche kürzen- wieder einmal

  Alt 19. Dez 2006, 18:22
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:
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;
Du musst dir aber zuerst mal ein Konzept ausdenken, exakt wann du von Integer- auf Float-Arithmetik wechselst.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat