[ Foro de Pseudocódigo ]

Conversión decimal fraccionario a binario

11-Sep-2017 07:20
Invitado (CaptHeinz)
0 Respuestas

Tengo problemas con este código, para valores de pocos decimales funciona por ejemplo 0.25, 0.5, 0.75, pero por ejemplo con 0.625 no funciona, se que el problema radica en usar el valor absoluto de la variable "Parte_Entera" pero si no lo hago el 0.75 sale con error, o se cicla en un loop infinito de 0 o solo muestra datos aleatorios, si alguien me podría ayudar gracias.

Algoritmo Conversion_bases_numéricas_fraccionarias
r<-0 //Resultado
Potencia1<-1^1/10
Escribir "Valor a convertir"
Leer V1
Escribir "Base numérica de ", V1,":"
Leer B1
Escribir "Base numérica a convertir ",V1,":"
Leer B2
Repetir
Producto<-V1*B2 //Es la multiplicación del valor ingresado por la base a convertir
Parte_Entera=(V1-(TRUNC(V1*B2)))*B2 //Es el valor ingresado menos la parte entera del producto, todo multiplicado por la base a convertir
Resultado=TRUNC(V1*B2) //Es el valor entero del producto
Si Producto no es 0
r<-Resultado*Potencia1+r //Acomodar los resultados por su peso numérico 1/10, 1/100, 1/1000, etc.
Potencia1<-Potencia1/B1 //Actualizar valor de la potencia al dividirlo por 10 cada vez que se hace el ciclo
Si Resultado es menor a 0 //Resultado puede quedar menor a 1 por lo que se asigna un valor numérico de 0
Resultado=0
FinSi
Si Parte_Entera es menor que 0 //Parte_Entera puede quedar menor que 0 por lo que se asigna un valor absoluto para realizar las operaciones
Parte_Entera=ABS(Parte_Entera)
FinSi
Escribir Resultado
V1<-Parte_Entera //Se actualiza el valor del número ingresado para realizar las operaciones nuevamente
FinSi
Hasta Que Producto=1
Escribir "La conversión a base ",B2," es ",r
FinAlgoritmo




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...