Java - suma de vectores

 
Vista:
Imágen de perfil de Diego

suma de vectores

Publicado por Diego (23 intervenciones) el 18/03/2014 03:44:32
hola buenas noches tengo una duda sobre este programa me manda un error de excepción son 3 vectores los cuales me muestran lo siguiente
0,2,4,6,8,10
1,3,5,7,9,11 el tercero me tiene que mostrar la suma del 2 vector la cual es 1,3,9,13,17,21 este es mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class TestVectores {
    public static void main(String[] args) {
        int vector[] = new int[12];
         for (int i = 0; i <12; i++)
            vector[i]=i;
 
            for (int i =0; i <12; i++)
            if(i%2==0)
            System.out.println( "pares:  "+ vector[i]);
 
         //impares
            for (int i = 0; i <12; i++)
            vector[i]=i;
 
            for (int i =0; i <12; i++)
            if(i%2!=0)
            System.out.println("impares: "+ vector[i]);
 
              for (int i = 0; i <12; i++)
            vector[i]=i+vector[i+i];
 
            for (int i =0; i <12; i++)
            if(i%2!=0)
            System.out.println(" "+ vector[i]);
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

suma de vectores

Publicado por Mitsu (8 intervenciones) el 18/03/2014 22:13:24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int[] numeros = new int[12];
List<int> pares = new ArrayList<>();
List<int> impares = new ArrayList<>();
List<int> suma = new ArrayList<>();
 
Random generador = new Random(); // genera numeros aleatorios
for(byte i=0; i<12; i++)
    numeros[i] = generador.nextInt(100)+1; // genera numeros aleatorios de 1 al 100
}
 
// llena la lista pares y la de impares
for(byte i=0; i<numeros.length; i++) {
    if( i%2==0) pares.add(numeros[i]);
    else impares.add(numeros[i]);
}
 
// suma las listas y las almacena en la lista suma
int listaMayor = pares.size() > impares.size() ? pares.size() : impares.size();
int listaMenor = pares.size() < impares.size() ? pares.size() : impares.size();
for(byte i=0; i<listaMayor; i++) {
    if(listaMenor <= listaMayor) // el bucle sigue mientras los 2 tengas valores aun
        suma.add(pares.get(i) + impares.get(i)); // suma los valores en el indice 'i' de cada lista
    else break;
}
 
// muestra los valores
for(byte i=0; suma.size(); i++) {
  System.out.println(suma.get(i));
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

suma de vectores

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 18/03/2014 22:56:13
Hola,
Tu problema está en el siguiente for
1
2
for (int i = 0; i <12; i++)
            vector[i]=i+vector[i+i];

Como ves, el vector tiene solo 12 posiciones del 0 al 11, pero por ejemplo cuando i vale 6 en la parte de: vector[ i + i ] la suma de la i sería 12 por lo que daría la posición 12 y como te dije este vector va del 0 al 11, 12 no existe.

Espero te sirva
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Diego

suma de vectores

Publicado por Diego (23 intervenciones) el 18/03/2014 23:32:22
Jonathan quedaria de esta forma entonces lo probe con solo imprimir i me muestra 2,6,10,14,18,22 en consola
for (int i = 0; i <12; i++)
vector[i]=i+vector[i-1];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

suma de vectores

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 19/03/2014 00:43:55
Hola,
Perdona pero no entiendo tu programa. Solo te dije donde estaba el error. En tu ejercicio dices "son 3 vectores " pero yo solo veo uno. Si Existieran dos vectores con el mismo tamaño (vectorA y vectorB) con numeros la suma seria:
1
2
3
int vectorResultado[]= new int[vectorA..length]
for (int i = 0; i <vectorA.length; i++)
	            vectorResultado[i]=vectorA[i]+vectorB[i];

Espero te ayude
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

suma de vectores

Publicado por Carlos (35 intervenciones) el 19/03/2014 00:50:39
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestVectores {
public static void main(String[] args) {
         int vectorP[] = new int[6];
         int vectorI[] = new int[6];
         int vectorS[] = new int[6];
         for (int i = 0,z=0,x=0; i <6; i++,z=z+2) vectorP[x++]=z;
         for (int i =0; i <6; i++)
             System.out.println( "pares: "+ vectorP[i]);
          for (int i = 0,z=1,x=0; i <6; i++,z=z+2) vectorI[x++]=z;
         for (int i =0; i <6; i=i+1) System.out.println("impares: "+ vectorI[i]);
         for (int i = 0; i <6; i++) vectorS[i]=vectorP[i]+vectorI[i];
         for (int i =0; i <6; i++)
             System.out.println(" "+ vectorS[i]);
 }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Diego

suma de vectores

Publicado por Diego (23 intervenciones) el 19/03/2014 02:21:51
Gracias carlos por el aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

suma de vectores

Publicado por Mitsu (8 intervenciones) el 19/03/2014 02:55:24
El problema que tienes es que siempre debes de tener un tamaño predeterminado e iguales en ambos arreglos. En el ejemplo que te expuse, utilicé listas que son arreglos dinámicos, es decir, crecen mientras se agreguen elementos y no tienen límite (su límite es la memoria ram).

Luego, los arreglos solo te servirán para cosas pequeñas, en aplicaciones reales no sirven de mucho por las limitaciones ya antes mencionadas. Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Diego

suma de vectores

Publicado por Diego (23 intervenciones) el 19/03/2014 23:39:33
si la suma de 2 vectores me sale puro 0 cual es mi error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

suma de vectores

Publicado por Gerardo (1 intervención) el 10/12/2015 18:29:26
Me sirvió de mucho tu aporte Carlos Gracias¡¡¡
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar