Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/04/2008, 16:56
Bershke
 
Fecha de Ingreso: enero-2008
Mensajes: 4
Antigüedad: 16 años, 4 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);

}
}