Gostaria de saber porque o código está dando erro, esse código tem como finalidade multiplicar 2 matriz e com resultado colocar numa 3 matriz e exibir.
public class Matriz2 {
int matriz[][] = new int[3][2];
int matriz2[][] = new int[2][5];
int matriz3[][] = new int[3][5];
public void adicionaMatriz(int adiciona){
for(int i = 0;i<matriz.length;i++){
for(int j = 0;j<matriz[i].length;j++){
matriz[i][j]=adiciona;
}
}
}
public void adicionaMatriz2(int adiciona){
for(int i = 0;i<matriz2.length;i++){
for(int j = 0;j<matriz2[i].length;j++){
matriz2[i][j]=adiciona;
}
}
}
public void calculaMatriz(){
for(int i = 0;i<matriz3.length;i++){
for(int j = 0;j<matriz3[i].length;j++){
matriz3[i][j]=0;
for(int k = 0;k<3;k++){
int valor1 = matriz[i][k];
int valor2 = matriz2[k][j];
int result = valor1*valor2;
matriz3[i][j]=result;
}
}
}
}
public void exibiMatriz(){
for(int i = 0;i<matriz3.length;i++){
for(int j = 0;j<matriz3[i].length;j++){
System.out.println(matriz3[i][j]);
}
}
}
}
[code]
public class Principal {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
Matriz2 chama = new Matriz2();
for(int i = 0;i<6;i++){
System.out.println("Escreve um numero para matriz A: ");
chama.adicionaMatriz(sc.nextInt());
}
for(int i = 0;i<10;i++){
System.out.println("Escreva um numero para matriz B: ");
chama.adicionaMatriz2(sc.nextInt());
}
chama.calculaMatriz();
chama.exibiMatriz();
sc.close();
}
[quote=fxzero]Gostaria de saber porque o código está dando erro, esse código tem como finalidade multiplicar 2 matriz e com resultado colocar numa 3 matriz e exibir.
public class Matriz2 {
int matriz[][] = new int[3][2];
int matriz2[][] = new int[2][5];
int matriz3[][] = new int[3][5];
public void adicionaMatriz(int adiciona){
for(int i = 0;i<matriz.length;i++){
for(int j = 0;j<matriz[i].length;j++){
matriz[i][j]=adiciona;
}
}
}
public void adicionaMatriz2(int adiciona){
for(int i = 0;i<matriz2.length;i++){
for(int j = 0;j<matriz2[i].length;j++){
matriz2[i][j]=adiciona;
}
}
}
public void calculaMatriz(){
for(int i = 0;i<matriz3.length;i++){
for(int j = 0;j<matriz3[i].length;j++){
matriz3[i][j]=0;
for(int k = 0;k<3;k++){
int valor1 = matriz[i][k];
int valor2 = matriz2[k][j];
int result = valor1*valor2;
matriz3[i][j]=result;
}
}
}
}
public void exibiMatriz(){
for(int i = 0;i<matriz3.length;i++){
for(int j = 0;j<matriz3[i].length;j++){
System.out.println(matriz3[i][j]);
}
}
}
}
[code]
public class Principal {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
Matriz2 chama = new Matriz2();
for(int i = 0;i<6;i++){
System.out.println("Escreve um numero para matriz A: ");
chama.adicionaMatriz(sc.nextInt());
}
for(int i = 0;i<10;i++){
System.out.println("Escreva um numero para matriz B: ");
chama.adicionaMatriz2(sc.nextInt());
}
chama.calculaMatriz();
chama.exibiMatriz();
sc.close();
}
}[/code][/quote]
Vc notou que cada um dos metodos que criou atribui o mesmo numero para todas elementos das 2 matrizes?
Esse determinante seria sempre zero!
Se quisesse atribuir um valor a uma linha x coluna especifica, precisaria de um método mais ou menos assim:
adicionaMatriz1(int linha, int coluna, double value) e
adicionaMatriz2(int linha, int coluna, double value)
onde tornaria o laço de cada método desnecessário, pois os dois primeiros atributos indicam as posições nas matrizes onde quer atribuir o novo valor.
Mesmo que seja um excelente matemático, sugeriria que vc pegasse um tutorial de programação sobre criação de funções e métodos e laços de repetições.
Por favor, ao postar tópico procure:
a) Dar um título descritivo. Se você parar para pensar, quase 100% dos usuários do fórum querem ajuda. E, em uns 90% dos casos, será a respeito de um erro. Logo, seu título acabou só falando o óbvio;
b) Não diga simplesmente que “está dando erro”. Diga qual erro está dando, preferencialmente, copiando a mensagem. Se o programa não está dando mensagem nenhuma, mas não está funcionando, descreva o resultado obtido e diga qual era o resultado esperado;
Essas dicas ajudam você a ser respondido mais depressa. Não espere que os usuários do fórum irão baixar seu código e compilar, por isso, ser descritivo aumenta em muito as chances de você ser corretamente respondido.