Главная страница | назад





Article #17895: Getting the Lowest common denominator.

 Question and Answer Database
FAQ2895D.txt Getting the Lowest common denominator.
Category :Object Pascal
Platform :All
Product :All 32 bit
Question:
How do I convert two numbers representing a ratio to a string
that represents a fraction of the lowest common denominator?
Answer:
The following example demonstrates a technique based on
equations originally solved by Euclid in approx. 300 B.C. :
Example:
function GetFracStr(Num1 : integer;
Num2 : integer) : string;
var
N1 : integer;
N2 : integer;
Tmp : integer;
begin
if Num1 < Num2 then begin
N1 := Num1;
N2 := Num2;
end else begin
N1 := Num2;
N2 := Num1;
end;
Tmp := N2 mod N1;
while Tmp <> 0 do begin
N2 := N1;
N1 := Tmp;
Tmp := N2 mod N1;
end;
result := IntToStr(Num1 div N1) + '/' + IntToStr(Num2 div N1);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(GetFracStr(2, 64));
end;
7/16/98 4:31:28 PM

Last Modified: 01-SEP-99