ayuda porfavor
Publicado por karen lopez (5 intervenciones) el 23/03/2006 06:07:28
hola estoy aprendiendo java y me pidieron que haga un programita que pida una entrada y qeu compare si es numero binario o no solo eso! quien me podria colaborar por favor???
aca esta lo que llevo pero hay un proble muy grande que solo verifica la primera posicion y de ahi decide si es un 1o un 0 es binario y de otro modo no lo es pero necesito qeu verifique toda la entrada por que en situaciones como esta 111110012 dice qeu es binario---
codigo java
-------------------------------
/*lo primero que hay q ue hacer es descomponer la entrada(String)
* a caracteres, luego se almacenan en cada posicion de un vector
* los caracteres, se recorre el vector pregunto si hay un caracter
* diferente al 0 1, he imprimir pantallazo*/
import java.util.Vector;
import javax.swing.JOptionPane;
public class Binarios{
private String NumBin;
private int num;
private String Resultado;
public Binarios(){
NumBin = JOptionPane.showInputDialog("Escriba el Número");
Resultado = "";
}
public void prueba(){
//se crea un vector que va guardar cada uno de los caracteres
//de la entrada
Vector digito = new Vector();
// un ciclo que almacena en cada una de las posiciones
//un caracter
int i = 0;
while(i < NumBin.length()){
// prefijo es un char de cada digito que fue transformado en String
// con el metodo valueof, para poderlo guardar en el vector de Strings
String prefijo= String.valueOf( (NumBin.charAt(i)));
//al vector digito se le guarda en la posicion i cada digito
digito.add(prefijo);
i++;
System.out.print(digito);
}
// recorre el vector en cada posicion para evaluar cada posicion
int f=0;
while( f<= digito.size()-1){
// este string coge el elemento en la posicion f
String temporal = (String)digito.elementAt(f);
// pasamos el string a un integer
int valorDelCaracterEnNumero = Integer.parseInt(temporal);
while(valorDelCaracterEnNumero<10){
int contadordif=0;
int contadormuch=0;
if(!((valorDelCaracterEnNumero == 1)||( valorDelCaracterEnNumero == 0)))
{
Resultado="No, este no es binario";
JOptionPane.showMessageDialog( null, Resultado,
" No es Binario", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}else {
Resultado="si es binario";
JOptionPane.showMessageDialog(null, Resultado,
" es Binario", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
valorDelCaracterEnNumero=11;
}
f++;
}
/* for(int contador2=0;contador2<digito.size()-1;contador2++)
{
f--;
if(((valorDelCaracterEnNumero == 1)||( valorDelCaracterEnNumero == 0)))
if(contador2==digito.size()-1){
Resultado="si es binario";
JOptionPane.showMessageDialog(null, Resultado,
"Es Binario", JOptionPane.INFORMATION_MESSAGE);
}
}
}System.exit(0);
} */
public static void main (String args []){
Binarios j = new Binarios();
j.prueba();
}
}
aca esta lo que llevo pero hay un proble muy grande que solo verifica la primera posicion y de ahi decide si es un 1o un 0 es binario y de otro modo no lo es pero necesito qeu verifique toda la entrada por que en situaciones como esta 111110012 dice qeu es binario---
codigo java
-------------------------------
/*lo primero que hay q ue hacer es descomponer la entrada(String)
* a caracteres, luego se almacenan en cada posicion de un vector
* los caracteres, se recorre el vector pregunto si hay un caracter
* diferente al 0 1, he imprimir pantallazo*/
import java.util.Vector;
import javax.swing.JOptionPane;
public class Binarios{
private String NumBin;
private int num;
private String Resultado;
public Binarios(){
NumBin = JOptionPane.showInputDialog("Escriba el Número");
Resultado = "";
}
public void prueba(){
//se crea un vector que va guardar cada uno de los caracteres
//de la entrada
Vector digito = new Vector();
// un ciclo que almacena en cada una de las posiciones
//un caracter
int i = 0;
while(i < NumBin.length()){
// prefijo es un char de cada digito que fue transformado en String
// con el metodo valueof, para poderlo guardar en el vector de Strings
String prefijo= String.valueOf( (NumBin.charAt(i)));
//al vector digito se le guarda en la posicion i cada digito
digito.add(prefijo);
i++;
System.out.print(digito);
}
// recorre el vector en cada posicion para evaluar cada posicion
int f=0;
while( f<= digito.size()-1){
// este string coge el elemento en la posicion f
String temporal = (String)digito.elementAt(f);
// pasamos el string a un integer
int valorDelCaracterEnNumero = Integer.parseInt(temporal);
while(valorDelCaracterEnNumero<10){
int contadordif=0;
int contadormuch=0;
if(!((valorDelCaracterEnNumero == 1)||( valorDelCaracterEnNumero == 0)))
{
Resultado="No, este no es binario";
JOptionPane.showMessageDialog( null, Resultado,
" No es Binario", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}else {
Resultado="si es binario";
JOptionPane.showMessageDialog(null, Resultado,
" es Binario", JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
valorDelCaracterEnNumero=11;
}
f++;
}
/* for(int contador2=0;contador2<digito.size()-1;contador2++)
{
f--;
if(((valorDelCaracterEnNumero == 1)||( valorDelCaracterEnNumero == 0)))
if(contador2==digito.size()-1){
Resultado="si es binario";
JOptionPane.showMessageDialog(null, Resultado,
"Es Binario", JOptionPane.INFORMATION_MESSAGE);
}
}
}System.exit(0);
} */
public static void main (String args []){
Binarios j = new Binarios();
j.prueba();
}
}
Valora esta pregunta


0