Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: GaLaN GaLaNaSo 3000 en 5 Julio 2004, 12:01 pm



Título: Eliminar elementos repetidos de un vector
Publicado por: GaLaN GaLaNaSo 3000 en 5 Julio 2004, 12:01 pm
Estoy en el segundo semetres de Ing de sistemas estamos programando en Java y bueno el profe nos dio 6 problemas y no pude resolver uno el de eliminar los elementos repetidos de un vector eJ:

vector  inicial ==>   9-3-2-9-5-6


vector final ==> 9-3-2-5-6

bueno yo por poco lo logro bueno utilize 2 for anidados para poder definir cuantos numeros repetidos hay y le meti un contador para que se incremente cada vez que hay un numero repetido luego cree un vector de la misma dimencion que el anterior pero restandole en contador pero ya para eliminar lo repetidos falla mi logica alguna ayuda o pista de como hacerlo sirve si me dan ejemplos en pascal y delphi  :P es casi lo mismo.

graciasssssss


Título: Re: Eliminar elementos repetidos de un vector
Publicado por: SiesteR en 5 Julio 2004, 13:47 pm
Hola!

me gustaria poder ofrecerte la yauda en pascal pero hace 2 años qu eno lo toco, y ademas en linux no se como usar el compilador de pascal. Por eso espero que entiendas C, que es como lo he hecho.

La idea basica es la de usar un array auxiliar en el q vas metiendo los numeros q hayas leido del array incial. Primero lees un numero del array inicial y lo escribes en el auxiliar, luego recorres el array auxiliar y cuentas las veces q esta ese numero q leiste. Si esta 1 vez lo pasas al array final simplificado, si esta mas de 1 vez no lo escribes en el array simplificado. Y vuelves a repetir la operacion pero leyendo el siguiente numero del array inicial.

Código:
#include <stdio.h>

int main (void) {
        int v_original [10];
        int v_aux [10];
        int v_final [10];
        int cont,num,i,j=0,k,z=0 ;

        for (i=0; i<10; i++) {
                printf("Introduce el valor del array incial %d: ", i+1);
                scanf("%d",&v_original[i]);
        }


        for (i=0;i<10;i++) {
                cont=0;
                num=v_original[i];
                v_aux[j]=num;
                j++;
                for (k=0;k<10;k++)
                        if ( v_aux[k] == num )
                                cont++;

                if ( cont == 1 ) {
                        v_final[z]=num;
                        z++;
                }
        }


        printf("El array simplificado es: \n");
        for (i=0;i<z;i++)
                printf ("%d \n",v_final[i]);

        return 0;
}


Ejemplo de uso:
Código:
~$ ./vectunico
Introduce el valor del array incial 1: 1
Introduce el valor del array incial 2: 1
Introduce el valor del array incial 3: 1
Introduce el valor del array incial 4: 2
Introduce el valor del array incial 5: 2
Introduce el valor del array incial 6: 2
Introduce el valor del array incial 7: 3
Introduce el valor del array incial 8: 3
Introduce el valor del array incial 9: 3
Introduce el valor del array incial 10: 4
El array simplificado es:
1
2
3
4
~$

Espero q lo entiendas :) Hastaluego


Título: Re: Eliminar elementos repetidos de un vector
Publicado por: osolmm en 16 Noviembre 2011, 06:44 am
Gracias, lo aplique a String en Java y fuciona   :xD    :D    :xD.


Saludos