Sv Community El Salvador
Soporte y Tecnología => Programación => Java => Topic started by: tk2b on December 10, 2011, 11:25:18 am
-
Les planteare lo que deseo hacer con un vector
Me an dejado un programa de votacion en el cual en un vector de 15 casillas haga como una base de datos de los numeros de DUI que an digitado para poder ejercer el boto. A lo cual cada vez que digiten el dui quede en la casilla, ejemplo que si es el votante 1 quede en la casilla cero, si es el dos en la casilla 1 y asi sucesibamente y a su vez escaneara si cada dui que se esta digitando no esta repetido.
Este es mi logica
int duis[]=new int dui[10];
int dui=0;
identificador=0;
for(i=0;i<duis.length;i++){
dui=0; " ACA LLENO LAS CASILLAS CON CERO"
}
for (i=0;i<duis.length;i++){
" CON ESTOS IF ESCANEO SI EXISTE DICHO DUI" " PERO COMO HAGO PARA DESPOSITAR EL NUMERO DE DUI EN UNA SOLA CASILLA?"
if(duis>0{
if (dui==duis){
identificador=1;}else{
identificador=0}
}else{}
}
Espero me puedan ayudar.
-
lo q podes hacer es lo siguiente, t podra dar errores pero es una idea.
tenes 10 duis y queres guardalos en un array y q no se repitan..
dui array
luego haces un for para revisar si el due q entra ya esta en el array.
for dui check si el due existe
con el if revisas
dui array == numero dui
si existe mostras un mensaje d error y break
else
entonces lo assignas dui = numero del dui.
antes d asignarlo revisa si dui.i esta empty si lo esta lo metes asi si no usas continue para pasar al oro slot del array. Si todos estan ocupados les mostrar un mensaje q ya no hay espacio para guardarlo.
encontraras errores kizas al tratar d hacer esto, pero por el momento solo eso se me a ocurida.
-
No se me habia ocurrido eso pooota viejo sos la ley.
-
Segun entiendo, tenes 10 duis, y queres meterlos en un arreglo...y asegurarte que en ese arreglo no vayan duis repetidos...si eso es asi, te sugiero que:
Uses este codigo
//Crear un arrayList
ArrayList<String> duis = new ArrayList<String>();
//Creas un HashSet
HashSet duisTemp = new HashSet();
//Copias todos los datos del array al hash
duisTemp.addAll(duis);
//Limpias el array, queda vacio
duis.clear();
//Agregas todos los dui del hash nuevamente al Array
duis.addAll(duisTemp);
Donde esta el truco? El HashSet no permite valores repetidos, asi que en el proceso se eliminaran.
(http://i.imgur.com/nnYC3.png)
-
Les planteare lo que deseo hacer con un vector
Me an dejado un programa de votacion en el cual en un vector de 15 casillas haga como una base de datos de los numeros de DUI que an digitado para poder ejercer el boto. A lo cual cada vez que digiten el dui quede en la casilla, ejemplo que si es el votante 1 quede en la casilla cero, si es el dos en la casilla 1 y asi sucesibamente y a su vez escaneara si cada dui que se esta digitando no esta repetido.
Este es mi logica
int duis[]=new int dui[10];
int dui=0;
identificador=0;
for(i=0;i<duis.length;i++){
dui=0; " ACA LLENO LAS CASILLAS CON CERO"
}
for (i=0;i<duis.length;i++){
" CON ESTOS IF ESCANEO SI EXISTE DICHO DUI" " PERO COMO HAGO PARA DESPOSITAR EL NUMERO DE DUI EN UNA SOLA CASILLA?"
if(duis>0{
if (dui==duis){
identificador=1;}else{
identificador=0}
}else{}
}
Espero me puedan ayudar.
Me imagino que estas llevando intro to programación y este ejercicio es una introduccion a los arrays (arreglos), asi que soluciona el problema usandolos. La respuesta de moyo18, a pesar de ser ineficiente al momento de verificar si un DUI ya existe, es exactamente lo que buscas. Tene en mente que necesitas un array de cadenas de texto, puesto que los DUI a veces empiezan con 0.
String[] duis;
duis = new String[15];
Espero que el profesor haya mencionado que utilizar arrays para este tipo de problemas no es recomendable. Cuando queres que un valor no se repita, busca una estructura nativa que te permita guardar valores únicos. Esto es lo que hkadejo hace con el HashSet. Por el momento trata de solucionar el problema solo con arrays (no ArrayLists). Despues podes implementar soluciones usando estructuras mas especializadas para profundizar tus conocimientos.
Ahora, en el mundo real, el DUI esta asociado con una persona. Una estructura ideal serian las HashTables.Pero por el momento, utiliza arrays y itera sobre cada uno para ver si el DUI ya existe, esto te ayudara a entenderlos mucho mejor.
-
Segun entiendo, tenes 10 duis, y queres meterlos en un arreglo...y asegurarte que en ese arreglo no vayan duis repetidos...si eso es asi, te sugiero que:
Uses este codigo
//Crear un arrayList
ArrayList<String> duis = new ArrayList<String>();
//Creas un HashSet
HashSet duisTemp = new HashSet();
//Copias todos los datos del array al hash
duisTemp.addAll(duis);
//Limpias el array, queda vacio
duis.clear();
//Agregas todos los dui del hash nuevamente al Array
duis.addAll(duisTemp);
Donde esta el truco? El HashSet no permite valores repetidos, asi que en el proceso se eliminaran.
(http://i.imgur.com/nnYC3.png)
muy buena tu respuesta usemos el java collection framework para eso lo crearon