Como somar 2 matrizes?

8 respostas Resolvido
java
L

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] = <strong>matriz1 + matriz2</strong>;

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

8 Respostas

F

Bom dia @LSagasan
Teria como postar a classe Matriz, por favor?

Att
Max

L

Matriz.java (1,5,KB)

F

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

J

@FacaNaCaveira, tens certeza que esse código roda? Como as matrizes sabem como se somarem? Como somar dois objetos?

Veja:

image

Elas não sabem se somar. Não se pode somar dois objetos (como se fossem números).

F

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

J

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.

J
Solucao aceita

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:

L

Jothar_Aleksander e FacaNaCaveira muito obrigado pela ajuda.Muito obrigado mesmo.VLW!!!

Criado 17 de setembro de 2019
Ultima resposta 17 de set. de 2019
Respostas 8
Participantes 3