Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   Porque no me imprime la suma de las matrices???????? (http://www.forosdelweb.com/f14/porque-no-imprime-suma-las-matrices-580967/)

Bershke 28/04/2008 16:56

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);

}
}

dogduck 29/04/2008 14:59

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.

Bershke 29/04/2008 21:29

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... :(


La zona horaria es GMT -6. Ahora son las 09:22.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.