Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: asdexiva en 7 Febrero 2014, 02:02 am



Título: convertir decimales a fracciones
Publicado por: asdexiva en 7 Febrero 2014, 02:02 am
ay algun metodo o funcion que convierta todos los decimales de todos los textbox del programa en sus respectivas fracciones ? si me pudieran dar un ejemplo o decir como gracias


Título: Re: convertir decimales a fracciones
Publicado por: engel lex en 7 Febrero 2014, 04:12 am
dudo que haya funcion... pero puedes hacer esto (http://www.disfrutalasmatematicas.com/numeros/convirtiendo-decimales-fracciones.html)...


Título: Re: convertir decimales a fracciones
Publicado por: fary en 7 Febrero 2014, 11:32 am
Exacto, te lo dejo en VBS

Código
  1. Dim Numero
  2.  
  3. Numero = 0.33
  4.  
  5. Numero = Numero * 100
  6.  
  7. Msgbox Numero & "/100"


Título: Re: convertir decimales a fracciones
Publicado por: javinet en 5 Marzo 2014, 07:44 am
Pseudo código:

R <- Número decimal
n <- Contar cifras decimales
e <- 10 ^ n
N <- multiplicar R x e
M <- factorizar R y e hasta encontrar el MCD
numerador <- N \ M
denominador <- e \ M

 ;D



Título: Re: convertir decimales a fracciones
Publicado por: engel lex en 5 Marzo 2014, 08:02 am
XD javinet eso no es pseudo código, son pasos a seguir XD

aunque el método está bien detallado

varios detalles

Citar
factorizar R y e hasta encontrar el MCD
creo que no puedes factorizar un numero decimal, necesitas que sea fracción (todo el punto de esta discusión)
sin contar que factorizar en código no es tan simple como solo decirlo XD

Citar
n <- Contar cifras decimales
si tiene un decimal periódico esto será infinito...



Título: Re: convertir decimales a fracciones
Publicado por: javinet en 6 Marzo 2014, 07:06 am
XD javinet eso no es pseudo código, son pasos a seguir XD

Correcto, coincido, a primera vista puede no parecer pseudocódigo pero...

Si estamos usando un lenguje comprensible para el programador, prescindiendo de un lenguaje informático específico, explicando los pasos a seguir, de una manera lógica y ordenada para la resolución de un problema, me pregunto y les pregunto, este pseudo lenguaje ¿no puede ser llamado pseudo código?

...

varios detalles
creo que no puedes factorizar un numero decimal, necesitas que sea fracción (todo el punto de esta discusión)

Gracias por la corrección, efectivamente hay un error en:

M <- factorizar R y e hasta encontrar el MCD

pido disculpas, porque no es R la variable a factorizar, sino N (¿sino para que está todo el cálculo previo?  :o ):

M <- factorizar N y e hasta encontrar el MCD

sin contar que factorizar en código no es tan simple como solo decirlo XD

De las tantas formas que existen para calcular el MCD, aquí encontré una de ellas:
http://foro.elhacker.net/programacion_cc/calcular_mcd_compila_bien_pero_no_corre-t298274.0.html;msg1478130#msg1478130 (http://foro.elhacker.net/programacion_cc/calcular_mcd_compila_bien_pero_no_corre-t298274.0.html;msg1478130#msg1478130)

si tiene un decimal periódico esto será infinito...

Con respecto a los decimales periódicos, no es que tengan cifras infinitas, sino períodos de cifras que se repiten indefinidamente, por lo tanto no son infinitos y se puede llegar a una fracción generatriz.

Entonces, cuando se trate de un número racional ya sea periódico o no, todo dependerá de la pericia del programador para definir la forma en la que obtendrá los datos de entrada y la lógica a implementar.

Ejemplo:

Por lo pronto y para seguir el hilo, propongo este algoritmo (ahora corregido) y sólo aplicable a números racionales no periódicos (otro usuario puede contribuir aportando la solución para los números racionales periódicos):

// R es el número decimal a convertir en fracción
// n es el número de cifras decimales
e = 10 ^ n
N = R * e
M = MCD(N, e)
numerador = N \ M
denominador = e \ M

 ;D

Edito: este problema ya se había solucionado antes  :o
aquí el enlace: http://foro.elhacker.net/programacion_visual_basic/ayuda_como_pasar_numeros_con_decimales_a_fraccion-t249244.0.html;msg1201414#msg1201414 (http://foro.elhacker.net/programacion_visual_basic/ayuda_como_pasar_numeros_con_decimales_a_fraccion-t249244.0.html;msg1201414#msg1201414)