Java - suma de vectores de n dimension

 
Vista:
Imágen de perfil de Jaqueline

suma de vectores de n dimension

Publicado por Jaqueline (1 intervención) el 26/05/2018 19:56:08
Hola este es mi codigo nose como corregir el error que me marca se que es porque estoy accediendo a una parte de la memoria del arreglo que no existe pero lo que quiero es hacer la logica para leer un vector de n componetnes
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
 *
 * @author SYSTEM
 */
public class Pruebitas {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
 
        int dimension =2;
        int l;
        int st=0,s1;
 
        int u= dimension;
 
      //  int[] wb= new int[u];
        int[][] bp= new int[u][u];
 
        bp[0][0]= 2;
        bp[0][1]=1;
        bp[1][0]=1;
        bp[1][1]=2;
 
 
     // public int[]norma(int[] bp,int dimension ){
 
       int c;
       int t=0;
          int[] wb= new int[dimension];
          for (c=0;c<dimension+1;c++){
             for (int j=0; j<dimension+1;j++){
 
            t =(bp[c][j]*bp[c][j])+t;
 
              wb[c]=t;
             System.out.println(wb[c]);
 
             }
 
    }
}
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
sin imagen de perfil

suma de vectores de n dimension

Publicado por Xibhu (19 intervenciones) el 28/05/2018 11:38:21
Un consejo, lo primero es que utilices nombres de variables más claros, te ayudará a entender mejor el código, y que cuando lo leas después de un tiempo lo vuelvas a comprender, y también ayuda a los demás a entenderlo. Y también usa algún comentario :)

El error te está dando en los for, en los índices, porque estás intentando acceder a posiciones del array que no existen. Básicamente porque estás sumando una posición extra.

tienes declarado que "dimensiones" es 2.
el array tiene tamaño [2][2]

En el for estás accediendo a las posiciones "c" mientras "c" sea menor que dimensiones+1 (en este caso es igual a 3
Entonces lo que ocurre es que las vueltas que va a dar, c va a tomar los valores 0, 1, 2.
Pero el array solo tiene dos posiciones, 0 y 1, entonces el +1 te sobra en este caso.

Este es un ejemplo de un array unidimensional, tómalo de ejemplo y puedes repetir el for de la misma manera de forma interna para acceder al siguiente índice.

1
2
3
4
5
6
int[] lista = {1,6,3,7,4,8,3,4,7};
int tam = lista.length();    //esto es una estrategia para ahorrar accesos innesesarios al objeto
 
for (int i=0; i<tam; i++){
         System.out.print(lista[i]);
}

1
2
3
4
5
6
7
8
int[] lista = {1,6,3,7,4,8,3,4,7};
int tam = lista.length();    //esto es una estrategia para ahorrar accesos innesesarios al objeto
 
for (int i=0; i<tam; i++){
 
        for(otro índice etc)
 
}
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