Foro de elhacker.net

Programación => Java => Mensaje iniciado por: KaRaLLo en 25 Enero 2012, 21:10 pm



Título: Mi algoritmo para eliminar datos de un array (tengo que usar 5 arrays)
Publicado por: KaRaLLo en 25 Enero 2012, 21:10 pm
Hola, después de haberme rayado la cabeza desde las ocho de la tarde, he conseguido sacar el ejercicio que me mandaron hoy en DAM en el módulo de programación (Java).

El ejercicio consiste en juntar 4 arrays

A un array String van asociados los valores de un array Int
A otro array String se le asocian los valores de otro array Int

Otro array fusiona los dos anteriores Strings[]
y otro fusiona los dos int[]

Ni que decir tengo que cada elemento del String fusionado[] tiene que corresponderle su valor.

Se ve mejor pensando que :

Un banco tiene estos clientes

String clientes[]           Int capital[]

Otro banco tiene estos

String clientes2[]         Int clientes2[]

Pero se fusionan y acaban todos

String clientes3[]        int clientes3[]



Código
  1. public class PruebasMain {
  2.  
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7. // TODO Auto-generated method stub
  8. String[] a ={"Pedro", "Rodrigo", "Manuel",
  9. "Jose",   "Paco",};
  10.  
  11.  
  12. String[] b={"Luis",   "Antonio", "Pedro",
  13. "Juan",  "Rodrigo"};
  14.  
  15. String[] N={"Pedro", "Rodrigo", "Manuel",
  16. "Jose",   "Paco"  , "Luis",
  17. "Antonio","Pedro" , "Juan",
  18. "Rodrigo"};
  19. int M[]={100,200,300,
  20. 400,500,600,
  21. 1000,2000,
  22. 3000,4000,
  23. 5000,};
  24.  
  25. int[] c={100,200,300,
  26. 400,500};
  27.  
  28. int[] d={1000,2000,3000,
  29. 4000,5000};
  30. int k;
  31. String auxNombre="";boolean bandera=false;
  32.  
  33. for (int j = 0; j < b.length; j++) { //el indice indica el elemento a compara
  34. for (int i = 0; i < a.length; i++) { //el indice indica los elementos que compara
  35. if(b[j].equals(a[i])){ //si el nombre es igual al otor array
  36. auxNombre=a[i]; //asigna el nombre a un auxiliar
  37. int auxDin=c[i]+d[j]; //y a un auxiliar la suma de los dos valores de sus capitales
  38. for (int l = 0; l < N.length; l++) { //este for asigna los valores al tercer array
  39. if(N[l].equals(auxNombre)){ //si N es igual al nombre encontrado
  40. M[l]=c[i]+d[j]; //se le asigna el dinero de auxDin
  41. N[l]=N[l]+" duplicado"; //si se le concatena al string de su nombre duplicado
  42. int o=l; //se guarda el indice
  43. if (l>o && N[l].equals(auxNombre)) { //para asegurarme que no vacie el primero
  44. N[l]="(--Vacio--)";
  45. M[l]=0;
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }//fin del segundo
  52. }// fin del primero
  53. }


Se ve mejor pensando que :

Un banco tiene estos clientes

String clientes[]           Int capital[]

Otro banco tiene estos

String clientes2[]         Int clientes2[]

Pero se fusionan y acaban todos

String clientes3[]        int clientes3[]


Añado que todavía no di los arreglos multidimensionales. Si no veo ninguna respuesta lo entiendo ya que esto me parece un poco cocedura xD.

Lo posteo porque me gustaría saber que os pareces o si se podría hacer de una forma mas simple.

PD: Si alguien lo resuelve con 2 líneas de código abro la ventana y me tiro :D
siento el tocho


Título: Re: Mi algoritmo para eliminar datos de un array (tengo que usar 5 arrays)
Publicado por: 1mpuls0 en 26 Enero 2012, 03:43 am
Trolololol

Código
  1. public class trolololo {    public static void main(String args[]){        String[] a ={"Pedro", "Rodrigo", "Manuel", "Jose", "Paco"};        String[] b={"Luis", "Antonio", "Pedro", "Juan","Rodrigo"};        int[] c={100,200,300, 400,500};        int[] d={1000,2000,3000,4000,5000};         int totalElementos=a.length+b.length;         String [] fusionNombre= new String[totalElementos];         int [] fusionCapital = new int[totalElementos];         int posicion=0;
  2.        for(int contador=0; contador<totalElementos;contador++){            if(contador<a.length){                fusionNombre[contador]=a[contador];                fusionCapital[contador]=c[contador]; }else{                fusionNombre[contador]=b[posicion];                fusionCapital[contador]=d[posicion];              posicion++; } System.out.println(fusionNombre[contador]); System.out.println(fusionCapital[contador]); } } }
  3.  

Bien espero tu parte xD
Citar
Si alguien lo resuelve con 2 líneas de código abro la ventana y me tiro
Está en dos líneas de código (bendito sean los ; y {}) xD

Bueno para fusionar ya está así como lo planteas, pero veo que en tu código tienes por si se llega a repetir un nombre (no le veo lógica, pero bueno) :P

Saludos.


Título: Re: Mi algoritmo para eliminar datos de un array (tengo que usar 5 arrays)
Publicado por: bewa en 27 Enero 2012, 08:36 am
No entiendo muy bien lo que quieres hacer pero estoy viendo bucles dentro de bucles y probablemente se pueda hacer con recursividad de forma más fácil.

PD. Yo también estoy haciendo DAM.