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");
}
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario