Utilizaremos el siguiente método para convertir números decimales a binarios (números que se sólo se componen de unos y ceros). El método es sencillo, consiste en dividir el número decimal entre dos, despues su cociente entre el mismo número y así sucesivamente hasta que finalmente el cociente (que se convierte en un divisor) sea igual a uno. Despúes organizamos los residuos desde el último al primero para obtener el número binario que buscamos.
El siguiente algoritmo en pseudocódigo codifica lo anterior.
En la línea 3 creamos un arreglo de nombre arr con suficiente posiciones para almacenar los residuos.
Despues creamos una variable contadora i inicializada en cero que hará de subíndice del arreglo.
En la variable num guardamos el número decimal ingresado.
Creamos un ciclo Repetir - Hasta para que dejé de hacer las operaciones cuando el cociente (divisor) sea igual a 1.
El ciclo contiene las instrucciones para hallar el binario:
Dividimos el numero ingresado entre 2 y lo guardamos en la variable div (nuestro cociente).
Calculamos el residuo con el operador % y lo guardamos en res.
Almacenamos en la posicion 0 del arreglo el residuo de la división.
A la variable num le asignamos la parte entera del cociente (funcion trunc) para que éste ahora sea dividido entre 2. Por último aumentamos en uno el subindice del arreglo. El ciclo termina hasta que num sea igual a 1.
Ahora mostramos los residuos que estan almacenados en el arreglo.
Primero comenzamos mostrando el cociente (línea 23) y despues con el ciclo Para los residuos que hallan el binario desde el último al primero.
Este es el perfil utilizado para correr correctamente el algoritmo:
El siguiente algoritmo en pseudocódigo codifica lo anterior.
En la línea 3 creamos un arreglo de nombre arr con suficiente posiciones para almacenar los residuos.
Despues creamos una variable contadora i inicializada en cero que hará de subíndice del arreglo.
En la variable num guardamos el número decimal ingresado.
Creamos un ciclo Repetir - Hasta para que dejé de hacer las operaciones cuando el cociente (divisor) sea igual a 1.
El ciclo contiene las instrucciones para hallar el binario:
Dividimos el numero ingresado entre 2 y lo guardamos en la variable div (nuestro cociente).
Calculamos el residuo con el operador % y lo guardamos en res.
Almacenamos en la posicion 0 del arreglo el residuo de la división.
A la variable num le asignamos la parte entera del cociente (funcion trunc) para que éste ahora sea dividido entre 2. Por último aumentamos en uno el subindice del arreglo. El ciclo termina hasta que num sea igual a 1.
Ahora mostramos los residuos que estan almacenados en el arreglo.
Primero comenzamos mostrando el cociente (línea 23) y despues con el ciclo Para los residuos que hallan el binario desde el último al primero.
Este es el perfil utilizado para correr correctamente el algoritmo:
No me resulto el codigo que subieron en la imagen
ResponderBorrarSalta error, pero al inicializar i en 1 y el para hasta 1 si sale. EXCELENTE, Gracias Jerry.
ResponderBorrarProceso binario
Dimension arr[100];
i<-1
num<-0
Escribir 'Digite un numero'
Leer num
Repetir
div<-num/2
res<-num%2
arr[i]<-res
num<-trunc(div)
i<-i+1
Hasta Que num=1
Escribir num
Para j<-i-1 Hasta 1 Con Paso -1 Hacer
Escribir arr[j]
FinPara
FinProceso
variables no inicializadas de seguro corres el programa en modo flexible y no en modo esctricto no estan definidos los parametro div res num i que clase de binario resulta si no sale completo bad idea
Borrarhacelo tu po oeeee
Borrargracias si sale cambiando la i<-0 por i<-1
ResponderBorrarDe diez! A mí me sirvió!
ResponderBorrarComo puedo hacer este proceso pero en SLE2?
ResponderBorrarAlgoritmo prueba
ResponderBorrarDefinir num Como Real;
definir div como real;
Definir res como real;
definir i,j como entero;
definir arr Como Real;;
Dimension arr[100];
i<-50;
num<-0;
Repetir
Escribir "escribir decimal";
Leer num;
Hasta Que num>0
Repetir
div<-num/2;
res<-num mod 2;
arr[i]<-res;
num<-trunc(div);
i=i-1;
Escribir num;
Escribir "-------------";
Hasta Que num<1
Para j<-i+1 Hasta 50 Con Paso 1 Hacer
Escribir arr[j];
Fin Para
FinAlgoritmo
Muchas gracias crack me salvas el cuatri
Borrargracias crack.
ResponderBorrarme ayudó muchísimo
Hola que pena estaba revisando lo que hacen pero una pregunta como seria si quiciera convertir un numero menor que 1 por ejemplo 0.258
ResponderBorrar