martes, 23 de octubre de 2012

Conversion de un numero Decimal a Binario



tipear el siguiente ejercicio , la tarea es la siguiente es analizar el programa  , pasarlo a diagrama de flujo y pseudocodigo


programa uno de tarea   cambiar  el ciclo for por while y el ciclo while por for  , el switch case por if
programa dos de tarea cambiar  el ciclo  for por do while y el while por do while



import java.io.*;

public class bindec {
    public static void main(String[] args) throws IOException {
        BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in));
       System.out.println(" introduce un numero   ");
       int x = Integer.parseInt(lectura.readLine());
       int Tamano = 35;
       String estatus = "afuera";

int[] a = new int[Tamano];
// Se llena el arreglo con ceros

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 % 2 )
{   // Abre if
a[j++] = x % 2;
// Se resta el residuo
 x -= x % 2;
// Se divide entre 2
x /= 2;
}   // Cierra if
else
{     // Abre else
a[j++] = 0;
// Se cambia x
x /= 2;
}     // Cierra else
}   // Cierra while
/* El numero en binario, que se ha guardado
 en el arreglo, se manda a imprimir */
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;
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");
       
    }
}

No hay comentarios:

Publicar un comentario