Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como simplificar y obtener el resultado en una fracción (https://www.clubdelphi.com/foros/showthread.php?t=38279)

manuelalejandro 09-12-2006 07:18:36

Como simplificar y obtener el resultado en una fracción
 
Hola, estoy creando un soft para calcular cabezales divisores, me dan una formula para ello pero en una parte de la formula necesito simplificar una fraccion y el resultado obtenido sea en una fracción. Disculpenme si no me doy a enteder muy bien, es que soy nuevo por aca, espero poder ayudarlos. Gracias

vtdeleon 09-12-2006 07:34:55

Lo mejor para hacerse entender es poniendo codigo, o dando un ejemplo.

Quizas te pueda servir la funcion format()

N:=Format('###.#',123.1231);


Saludos

seoane 09-12-2006 13:33:06

Si te he entendido bien, lo que tu necesitas es simplificar una fracción hasta que su numerador y denominador sean lo mas pequeños posible. Eso se consigue dividiendo ambos por su máximo común divisor.

Es decir, si tenemos la fracción 24/40, su máximo común divisor es 8 y la fracción simplificada es 3/5. Pues bien, aquí la única dificultad es calcular el mcd (máximo común divisor), pero esto ya nos lo resolvió nuestro amigo Euclides hace ya mucho tiempo.

Código Delphi [-]
function mcd(a,b: integer): integer;
var
  m: integer;
begin
  m:= a mod b;
  if m = 0 then
    Result:=  b
  else
    Result:= mcd(b,m);
end;

// Por ejemplo
var
  a,b,c: integer;
begin
  a:= 24;
  b:= 40;
  ShowMessage(Format('Original %d/%d',[a,b]));
  c:= mcd(a,b);
  a:= a div c;
  b:= b div c;
  ShowMessage(Format('Simplificada %d/%d',[a,b]));
end;

manuelalejandro 10-12-2006 02:51:04

Muchas gracias a ambos
 
Ojala y pueda ayudarles en algo


La franja horaria es GMT +2. Ahora son las 20:36:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi