Este programa recibe un número decimal y lo convierte a notación Octal.
Este código debe guardarse con el nombre UsaconvertirOctal.java
import java.util.Scanner; public class UsaConvertirOctal { // Abre clase UsaConvertirOctal public static void main( String args[]) { // Abre main System.out.print("\nEste programa convierte decimal a "); System.out.print("octal. \n"); Scanner entrada = new Scanner(System.in); ConvertirOctal miObjeto = new ConvertirOctal(); int numero; System.out.print("\nPor favor introduzca un numero "); System.out.println("y se imprimira su equivalente en octal: "); numero = entrada.nextInt(); miObjeto.Octal( numero ); } // Cierra main } // Cierra clase UsaConvertir
Este código debe guardarse con el nombre ConvertirOctal.java
public class ConvertirOctal { // Abre clase ConvertirOctal // La variable Tamano controla el numero de // simbolos que se requieren para hacer la conversion // Para llevar un registro de los simbolos se usa un // arreglo. Estos se deben guardar porque se van generando // de derecha a izquierda, pero la impresion es de // izquierda a derecha. private int Tamano = 35; private int[] a = new int[Tamano]; ///////////////////////////////////// // METDODO OCTAL ///////////////////////////////////// public void Octal( int x ) { // Abre metodo Octal System.out.println("\nAqui esta el numero en notacion octal: "); // Las entradas del arreglo se llenan con 0 for ( int i = 0; i < Tamano; i++ ) { // Abre for a[i] = 0; } // Cierra for int j = 0; while ( 0 != x ) { // Abre while if ( 0 != x % 8 ) { // Abre if a[j++] = x % 8; // Se resta el residuo x -= x % 8; // Se divide entre 8 x /= 8; } // Cierra if else { // Abre else a[j++] = 0; // Se cambia x x /= 8; } // Cierra else } // Cierra while // El numero en octal, que se ha guardado // al reves en el arreglo a, se manda a // imprimir Imprimir(); } // Cierra metodo Octal /////////////////////////////////// //METODO IMPRIMIR /////////////////////////////////// public void Imprimir( ) { // Abre metodo Imprimir // El arreglo se imprime de la ultima posicion // a la primera. Sin embargo, es muy probable // que las ultimas sean 0. Como estan a la derecha // no es necesario imprimirlos. La variable estatus // inicia con "afuera", lo cual indica que los ceros // no deben imprimirse String estatus = "afuera"; for ( int i = Tamano - 1; i >= 0; i-- ) switch ( a[i] ) { // Abre switch case 0: if ( "adentro" == estatus ) System.out.printf("0"); break; case 1: System.out.printf("1"); estatus = "adentro"; break; case 2: System.out.printf("2"); estatus = "adentro"; break; case 3: System.out.printf("3"); estatus = "adentro"; break; case 4: System.out.printf("4"); estatus = "adentro"; break; case 5: System.out.printf("5"); estatus = "adentro"; break; case 6: System.out.printf("6"); estatus = "adentro"; break; case 7: System.out.printf("7"); estatus = "adentro"; break; default: System.out.printf("ERROR. EL PROGRAMA ESTA MAL"); break; } // Cierra switch // Es probable que se haya introducido el numero 0 // y en este caso la variable estatus permanecio // como "afuera" y no se imprimio el 0. if ( "afuera" == estatus ) System.out.printf("0"); System.out.println("\n"); } // Cierra metodo Imprimir } // Cierra clase ConvertirOctal
No hay comentarios:
Publicar un comentario