Alguém pode me ajudar a resolver esse problema?
Não estou conseguindo achar um método para somar as 2 matrizes.
Esse é o método para soma.
public void somar(Matriz matriz1,Matriz matriz2) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
result[i][j] = matriz1 + matriz2;
System.out.print(result[i][j] + “\t”);
}
System.out.print("\n");
}
}
“The operator + is undefined for the argument type(s) Matriz,Matriz”
Tanto a matriz 1 quanto a matriz2,são geradas com entradas de dados pelo teclado.
Matriz matriz1 = new Matriz(m, n);
matriz1.lerMatrizA();
matriz1.exibirMatrizA();
Matriz matriz2 = new Matriz(m, n);
matriz2.lerMatrizB();
matriz2.exibirMatrizB();
Bom dia @LSagasan
Teria como postar a classe Matriz, por favor?
Att
Max
Vamos facilitar para os demais amigos do forum:
import java.util.Scanner;
public class Matriz {
private int m;
private int n;
private int i;
private int j;
private int a[][];
private int b[][];
private int result[][];
public Matriz(int l, int c) {
m = l;
n = c;
a = new int[m][n];
b = new int[m][n];
result = new int [i][j];
}
public void lerMatrizA() {
Scanner input = new Scanner(System.in);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.println("Digite o elemento da linha [" + (i + 1) + "] da coluna [" + (j + 1) + "]: ");
a[i][j] = input.nextInt();
System.out.println("");
}
}
}
public void lerMatrizB() {
Scanner input = new Scanner(System.in);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.println("Digite o elemento da linha [" + (i + 1) + "] da coluna [" + (j + 1) + "]: ");
b[i][j] = input.nextInt();
System.out.println("");
}
}
}
public void exibirMatrizA() {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println("\n");
}
}
public void exibirMatrizB() {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(b[i][j] + " ");
}
System.out.println("\n");
}
}
public void somar(Matriz matriz1,Matriz matriz2) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
result[i][j] = matriz1 + matriz2;
System.out.print(result[i][j] + "\t");
}
System.out.print("\n");
}
}
}
Att
Max
@FacaNaCaveira, tens certeza que esse código roda? Como as matrizes sabem como se somarem? Como somar dois objetos?
Veja:
![image](https://www.guj.com.br/uploads/default/original/3X/5/0/50cf5762c7f4fd7af30c84d76c7a390b3a822d51.png)
Elas não sabem se somar. Não se pode somar dois objetos (como se fossem números).
Fala ai @Jothar_Aleksander, so fiz a postagem do conteúdo do arquivo que o @LSagasan passou em arquivo anexado no forum. Para os demais companheiros do forum poderem dar uma solução. ja tinha visto que não rodava.
Att
Max
1 curtida
Eu só quero saber se tu testou o código. Você criou uma classe Matriz
, então ela deve poder saber como realizar as suas operações.
Contribuindo…
Alterações e teste do código postado pelo @FacaNaCaveira.
Método soma
sem parâmetros:
import java.util.Scanner;
public class Matriz {
private int m;
private int n;
private int i;
private int j;
private int a[][];
private int b[][];
private int result[][];
public Matriz(int l, int c) {
m = l;
n = c;
a = new int[m][n];
b = new int[m][n];
result = new int [m][n];
}
public void lerMatrizA() {
int l = 0;
int c = 0;
Scanner input = new Scanner(System.in);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print("Digite o elemento da linha [" + (l++) + "] da coluna [" + (c++) + "]: ");
a[i][j] = input.nextInt();
System.out.println("");
}
}
}
public void lerMatrizB() {
int l = 0;
int c = 0;
Scanner input = new Scanner(System.in);
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print("Digite o elemento da linha [" + (l++) + "] da coluna [" + (c++) + "]: ");
b[i][j] = input.nextInt();
System.out.println("");
}
}
}
public void exibirMatrizA() {
System.out.println("Matriz A\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println("");
}
}
public void exibirMatrizB() {
System.out.println("\nMatriz B\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(b[i][j] + " ");
}
System.out.println("");
}
}
public void somar() {
System.out.println("\n\nSoma A + B\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
result[i][j] = a[i][j] + b[i][j];
System.out.printf("%03d", result[i][j]);
System.out.print(" ");
}
System.out.println("");
}
}
}
public class Principal {
public static void main(String[] args){
Matriz matriz = new Matriz(2, 2);
matriz.lerMatrizA();
matriz.lerMatrizB();
matriz.exibirMatrizA();
matriz.exibirMatrizB();
matriz.somar();
}
}
Resultado:
Jothar_Aleksander e FacaNaCaveira muito obrigado pela ajuda.Muito obrigado mesmo.VLW!!!