Como hacer para que devulva una fgracción!

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Charlie19
Aprendiz de Mago
Mensajes: 30
Registrado: 12 Ene 2010, 22:59

Como hacer para que devulva una fgracción!

Mensaje por Charlie19 »

Hola,
Ahora hago un tema paralelo al del orden ( que de momento no tiene mucha contestación.)
Bueno este lo abro para haber si alguien me indica un comando para que me devulva una variable en forma de fracción, vamos que al poner:

Código: Seleccionar todo

$n1 = 1/16
...
$n1 = $n1 + 1/16
...
Bueno que quando ponga un MsgBox para el resultado en esta me salgo ( en este ejemplo) 2/16! y no 0,125 ¬¬'
Xd garcias
Sin error no hay esfuerzo, sin esfuerzo no se programa!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Como hacer para que devulva una fgracción!

Mensaje por Chefito »

Que yo sepa no hay nada parecido a lo que tú quieres. Te va a tocar hacer una función para que te devuelva eso. Tendrás que aplicar las propiedades de suma de las fracciones. No es muy dificil de hacer.
Recuerda, tendrás que buscar el el m.c.m de los denominadores, y luego multiplicar los numeradores por el resultado de la división del m.c.m. entre su denominador. Así tendrías ya los numeradores, los cuales finalmente podrás sumar, y los denominadores en común.
No es muy dificil. Intenta algo. Te recomiendo que hagas a parte la función para hallar el m.c.m.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Como hacer para que devulva una fgracción!

Mensaje por Ximorro »

Para eso te va a tocar trabajar con las fracciones en formato texto, y analizarlas y hacer las operaciones "a mano". Es lo que se llama cálculo simbólico.
Mira te hago un minicódigo para sumar dos fracciones de esta manera, así a lo rápido, la fracción no está simplificada (ya calcularás tú el m.c.m. ;-) )
Ahí puedes ver por ejemplo cómo empezar a analizar las fracciones para sacar numerador y denominador, además habría que mirar el signo... esto es sólo para abrir boca...

Código: Seleccionar todo

Global $a, $b
$a = "1/2"
$b = "1/5"
MsgBox(0, "Suma fracciones", StringFormat("%s + %s = %s", $a, $b, _SumaFrac($a, $b)))

Func _SumaFrac($n1, $n2)
	Local $m1, $m2, $nume1, $deno1, $nume2, $deno2
	$m1 = StringSplit($n1, "/")
	$nume1 = $m1[1]
	$deno1 = $m1[2]
	$m2 = StringSplit($n2, "/")
	$nume2 = $m2[1]
	$deno2 = $m2[2]
	Return ($nume1*$deno2+$nume2*$deno1) & "/" & ($deno1*$deno2)
EndFunc
Otra cosa más complicada es analizar expresiones, tipo "1/2 + 2/3" en el que hay que sacar operadores y números. Un analizador complejo de expresiones puede ser un arte...

Ah, y otra es tener un número decimal tipo 1.23423423 y ver qué fracción representa. Si sólo quieres pasar resultados a fracción quizás se pueda atacar la cosa por ahí, aunque está claro que no todos los números reales se pueden representar por fraciones... por ejemplo 4 * ATan(1) ;-)
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder