Foros del Web » Programación para mayores de 30 ;) » Programación General »

Porque no me imprime la suma de las matrices????????

Estas en el tema de Porque no me imprime la suma de las matrices???????? en el foro de Programación General en Foros del Web. Estoy tratando de hacer un programa en JAVA con la suma de dos matrices, sin embargo no me la imprime ¿porque? Si me sale el ...
  #1 (permalink)  
Antiguo 28/04/2008, 16:56
 
Fecha de Ingreso: enero-2008
Mensajes: 4
Antigüedad: 16 años, 3 meses
Puntos: 0
Exclamación Porque no me imprime la suma de las matrices????????

Estoy tratando de hacer un programa en JAVA con la suma de dos matrices, sin embargo no me la imprime ¿porque?

Si me sale el menu, me pregunta sobre el numero de columnas y renglones, despues me lee las dos matrices pero no me imprime la suma de ellas.

Esto es lo que me sale:


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Matriz.matrizsuma<PPMatriz.java:51>
at PPMatriz.main<PPMatriz.java:120>

Y la verdad no entiendo, pense que tal ves seria por el nombre de la clase pero no lo es. Este es el codigo:



import java.util.*;



class Matriz{

int[ ][ ]y;

Scanner in= new Scanner(System.in);

public Matriz(int r, int c){

y= new int[r][c];

}

public Matriz() {
}

public void llenaMatriz(int [ ][ ]y){

int i,j;

System.out.println("\nLeyendo Matriz...\n");

for (i=0; i<y.length;i++)
for (j=0; j<y[i].length; j++) {
System.out.print("Dame el elemento["+i+"]["+j+"]: ");
y[i][j] = in.nextInt();
}

}

public int obtenElemento(int i, int j){

return y[i][j];

}

public int asignaElemento(int i, int j, int valor){

return y[i][j]=valor;
}

public int[][] matrizsuma(int [ ][ ] y, int [ ][ ]z,int [ ][ ]u){

int i,j;

for (i=0; i<y.length;i++){
for (j=0; i<y[0].length; j++)
u[i][j]=this.asignaElemento(i,j,y[i][j]+this.obtenElemento(i,j));
}return u;

}

public void imprimeMatriz(int [ ][ ]matriz){

int i,j;

System.out.println("\n Imprimiendo Matriz: \n");

for (i=0; i<y.length;i++){
for (j=0; i<y[0].length; j++)

System.out.print(matriz[i][j]+"");
System.out.println();


}

}

}

public class PPMatriz{

public static void menu(){



System.out.println("\n\t\t\t * M E N U * ");
System.out.println("============================== ==================================");
System.out.println("[1] Suma");
System.out.println("[0] Salir");
System.out.print("Teclea la opcivõn deseada: ");
}

public static void main (String[ ]args){

Scanner in = new Scanner(System.in);

int r,c, option, sum, rest, multi, tras, deter, inv;
boolean seguir;
String entrada;

seguir = true;

do{

menu();
option = in.nextInt();

switch(option){

case 1: System.out.print("Dame el num. de renglones: ");
r = in.nextInt();

System.out.print("Dame el num. de columnas: ");
c = in.nextInt();

int [][]n2=new int[r][c];
int [ ][ ]n1=new int[r][c];

Matriz x=new Matriz(r,c);
Matriz z=new Matriz(r,c);
int [ ][ ]n3=new int[r][c];

x.llenaMatriz(n2);
z.llenaMatriz(n1);
n3=x.matrizsuma(n1,n2,n3);
x.imprimeMatriz(n3);

case 0: seguir = false;
break;
default: System.out.println("Error 4440: Teclea una opcion valida");

}

} while(seguir);

}
}
  #2 (permalink)  
Antiguo 29/04/2008, 14:59
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Re: Porque no me imprime la suma de las matrices????????

http://www.forosdelweb.com/f45/ayuda...eption-533572/
Cita:
Como dice la excepción, es un índice fuera de rango. Eso quiere decir que algunos de los índices de alguno de los array te hace ir a una posición fuera del array. Por ejemplo, si y[] tiene 10 elementos e intentas acceder al y[23] te dará ese error. Es dificil saber cual puesto que no indicas los tamaños de los arrays ni el valor de n.

Recuerda también que los arrays empiezan con indice cero, por lo que si el array tiene 10 elementos, los indices válidos son de 0 a 9.
  #3 (permalink)  
Antiguo 29/04/2008, 21:29
 
Fecha de Ingreso: enero-2008
Mensajes: 4
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Porque no me imprime la suma de las matrices????????

Grax por la ayuda, sin embargo me es un poco dificil comprender lo que has dicho.... solo se que me marca error en estas dos lineas, en la 51 y en la 120:

u[i][j]=this.asignaElemento(i,j,y[i][j]+this.obtenElemento(i,j));

n3=x.matrizsuma(n1,n2,n3);


pero he tratado de modificarlas y no obtengo la solucion... :(
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 20:26.