Autor Tema: AYUDA A los programadores pro xD con este noob cuestion  (Leído 3116 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tk2b

  • Sv Member
  • ***
  • Mensajes: 174
AYUDA A los programadores pro xD con este noob cuestion
« : diciembre 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.
No importa quien empieze la guerra siempre los pobres las acaban.

Desconectado moyo18

  • The Communiter-
  • *
  • Mensajes: 1719
Re: AYUDA A los programadores pro xD con este noob cuestion
« Respuesta #1 : diciembre 10, 2011, 11:45:06 am »
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.







« Última Modificación: diciembre 10, 2011, 11:49:12 am por moyo18 »

Desconectado tk2b

  • Sv Member
  • ***
  • Mensajes: 174
Re: AYUDA A los programadores pro xD con este noob cuestion
« Respuesta #2 : diciembre 10, 2011, 11:50:51 am »
No se me habia ocurrido eso pooota viejo sos la ley.
No importa quien empieze la guerra siempre los pobres las acaban.

Desconectado hkadejo

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 3346
Re: AYUDA A los programadores pro xD con este noob cuestion
« Respuesta #3 : diciembre 10, 2011, 11:51:33 am »
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

Código: [Seleccionar]
//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.

« Última Modificación: diciembre 10, 2011, 12:02:11 pm por hkadejo »

Desconectado JaiMe

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 1485
  • λ | h+
Re: AYUDA A los programadores pro xD con este noob cuestion
« Respuesta #4 : diciembre 10, 2011, 04:12:40 pm »
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.

Código: [Seleccionar]
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.
« Última Modificación: diciembre 10, 2011, 04:17:26 pm por JaiMe »
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson

Desconectado radamanthys360

  • Sv Member
  • ***
  • Mensajes: 231
  • Peor Es Nada
Re: AYUDA A los programadores pro xD con este noob cuestion
« Respuesta #5 : marzo 31, 2012, 10:16:58 am »
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

Código: [Seleccionar]
//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.



muy buena tu respuesta usemos el java collection framework para eso lo crearon