Ver Mensaje Individual
  #4  
Antiguo 26-05-2006
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Reputación: 19
lpmlpm Va por buen camino
0.14 = 14/100

Puedes partir de ahi y despues tratar de encontrar la minima expresión de ese número fraccionario...

ten en cuenta que 0.14 asi sin mas decimales no da exactamente 1/7 por lo que la minima expresión de 14/100 no es precisamente 1/7 sino algo así como 7/50

El algoritmo es simple se trata de encontrar el maximo comun divisor de ambos operadores y obtener la división de ambos...aqui mas o menos como lo simplificarias a partir de 2 cajas de edición con el numerador y el denominador:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var a, b, mcd, mcm, tmp, resto: INTEGER;
begin
  a := StrToInt(Edit1.Text);
  b := StrToInt(Edit2.Text);
  tmp := a;
  mcd := b;
  repeat
    resto := tmp mod mcd;
    if resto <> 0
      then begin
      tmp := mcd;
      mcd := resto;
    end;
  until resto = 0;
  mcm := a * b div mcd;
  Edit1.Text := IntToStr(A div mcd);
  Edit2.Text := IntToStr(b div mcd);
end;

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita