Aqui les dejo este programa hecho en python se trata de convertir numeros decimales a binario, octal y hexadecimal...
Código
EJECUCIÓN:
ALGORITMO:
1.Inicio
2. Pedir el número en decimal al cual se le va a realizar la conversion a binario, octal y hexadecimal y asignarlo a la variable numero.
3. Se declaran dos variables las cuales son aux y res y se les asigna el valor de la variable numero
4. Se crean tres llistas vacias: binario[], octal[], hexade[]
5. Para realizar las primera conversion a binario pregunta si res es mayo a 1 ya que 1 en decimal es 1 en binario y 0 en decimal es 0 en binario y no es necesidad de realizar ninguna operación.
5.1 Si es mayor a 1 entra al ciclo y empieza a realizar las operaciones necesarias, la primera es la división modular res% 2 ya que los residuo de las operaciones son los que nos da el resultado en binario y esto se agrega a la variable llamada aux.
5.2 La segunda operación es una división de res entre 2 para poder realizar la siguiente operación necesaria y se agrega a la variables res.
5.3 El valor de aux que fue el residuo de res%2 se agrega a la lista en la posición 0 para eso se uso la función insert y la variable aux se agrego como tipo caracter.
5.4 Los tres pasos anteriores se repiten hasta que la división sea = a 1.
6. Al salir del ciclo se agrega a la lista el ultimo valor de la división normal y se inserta en la posición 0.
7. Para realizar la segunda conversion a octal pregunta si res es mayo o igual a 8ya que del 0 al 7 son igaules en decimal l y no es necesidad de realizar ninguna operación.
7.1 Si es mayor a 1 entra al ciclo y empieza a realizar las operaciones necesarias, la primera es la división modular res% 8 ya que los residuo de las operaciones son los que nos da el resultado en octal y esto se agrega a la variable llamada aux.
7.2 La segunda operación es una división de res entre 8 para poder realizar la siguiente operación necesaria y se agrega a la variables res.
7.3 El valor de aux que fue el residuo de res%8 se agrega a la lista en la posición 0 para eso se uso la función insert y la variable aux se agrego como tipo caracter.
5.4 Los tres pasos anteriores se repiten hasta que la división sea menor a 8.
8. Al salir del ciclo se agrega a la lista el ultimo valor de la división normal y se inserta en la posición 0.
9. Para realizar la segunda conversion a octal pregunta si res es mayor o igual a 16.
9.1 Si es mayor a 1 entra al ciclo y empieza a realizar las operaciones necesarias, la primera es la división modular res% 16 ya que los residuo de las operaciones son los que nos da el resultado en octal y esto se agrega a la variable llamada aux.
9.2 La segunda operación es una división de res entre 16 para poder realizar la siguiente operación necesaria y se agrega a la variables res.
9.3 El valor de aux que fue el residuo de res%8 se agrega a la lista en la posición 0 para eso se uso la función insert y la variable aux se agrego como tipo caracter.
5.4 Los tres pasos anteriores se repiten hasta que la división sea menor a 16.
10. Al salir del ciclo se agrega a la lista el ultimo valor de la división normal y se inserta en la posición 0.
11. Cuando termina de realizar todos los calculos, la lista obtenida de hexade se agrega a una variable como una cadena de caracteres(ya no es una lista) pero estos se van a a gregar con un espacio entre ellos.
12. Se reemplazan los numeros que son del 10 al 15 por las letras correspondientes en el hexadecimal.
13. Reemplaza el espacio que dejamos por sin espacio.
14. Se imprimen los resultados en la pantalla, el binario lo juntamos com la función join para que se imprima toda la lista junta al igual que el octal y en el hexadecimal nadamas imrpimimos lo que es la variable unido.(esto se realiza pro que le agregamos los datos como si fueran tipo caracter ya que join solo funciona con letras).
EJEMPLO
A continuación muetsro el ejemplo de como convertir el numero decimal 10 a binario, octal y hexadecimal
Ahora este es un ejemplo para no confundir cuando se debe reemplazar un numero por una letra.
Seis puntos para el lab de lenguajes.
ResponderEliminar