Matriz faça soma e multiplica

ola pessoal

eu nao consigo fazer um programa que tem duas matrizes para somar" e um programa que tem duas matrizes para fazer multiplicaçao"

alguem me ajuda?? :cry:

obrigada

pela foto até ajudaria… :oops:
rs!!

posta o que vc conseguiu fazer até agora!!!

Alguém lembra quais as regras de soma e multiplicação de matrizes?

Soma é simples. As matrizes tem que ter as mesmas dimensões e soma-se os elemntos A[i, j] com B[i, j]

Já na multiplicação, a quantidade de linhas da primeira tem que ser igual a de colunas da segunda. Se AxB=C então C[i, j] = somatorio(A[i, k]*B[k, j]), onde 1>=k>=n, sendo n é a largura da primeira matriz.

Vou repetir (com alguns acréscimos) aqui uma resposta que dei para o/a Samilu (eu bloqueei todos os avatares com o AdBlock, então eu realmente não sei se é “o” ou “a”).

http://commons.apache.org/math/userguide/linear.html

Baixe o pacote, veja o fonte da classe org.apache.commons.math.linear.RealMatrixImpl , e veja como é que ele faz a soma e a multiplicação de duas matrizes.

Alternativamente, você pode fazer isso com 2 laços “for” se for a adição, no caso de uma soma, ou com 3 laços “for” se for a multiplicação.

Não se esqueça de dimensionar corretamente a matriz de saída antes de efetuar a soma ou a multiplicação; é isso que é a verdadeira “pegadinha” desse exercício, já que se você não fizer isso vai acabar recebendo alguns “ArrayIndexOutOfBoundsException” ou “NullPointerException”.

Esse exercício é trabalhoso, portanto veja se você tem um colega com o mesmo dever de casa, e façam isso juntos - o mais esperto faz a multiplicação, e o mais bobo faz a adição, que é mais simples.

EDIT - são 3 laços “for” para a multiplicação, sendo que um deles é para a somatória. Eu tinha posto só 2, não lembro mais por quê.

Uma ajuda…você pode melhorar e muito esse código :slight_smile:

public class Matriz {

	
	public static void main(String[] args) {
		
		int matriza[][]= {{1,2,3},{4,5,6}};
		int matrizb[][] = {{7,8,9},{10,11,12}};
		
		Integer matrizsoma[][] = new Integer[2][2] ;
		Integer matrizmulti[][] = new Integer[2][2];
		
		//soma
		
		for(int i=0;i<matriza.length;i++) { //percorre linha da matriza
			for(int j=0;j<matriza.length;j++) { //percorre coluna da matriz a
				matrizsoma[i][j] = matriza[i][j]+matrizb[i][j];
			}
		}
		
		//multi
		for(int i=0;i<matriza.length;i++) { //percorre linha da matriza
			for(int j=0;j<matrizb.length;j++) { //percorre coluna da matriz a
				matrizmulti[i][j] = matriza[i][j]*matrizb[i][j];
			}
		}
				
		//imprimir soma
		
		for(int i=0;i<matrizsoma.length;i++) { //percorre linha
			System.out.println("\n");
			for(int j=0;j<matrizsoma.length;j++) { //percorre coluna
				System.out.print(matrizsoma[i][j]+"\t");
			}
		}
		
		//imprimir multiplicação
		for(int i=0;i<matrizmulti.length;i++) { //percorre linha
			System.out.println("\n");
			for(int j=0;j<matrizmulti.length;j++) { //percorre coluna
				System.out.print(matrizmulti[i][j]+"\t");
			}
		}
		
	}
	
}

jzf, você vai fazer a dona Andréa (ou o sr. Andrea, não vi o avatar e posso achar que ele na verdade é um italiano como o cantor Andrea Bocelli) perder meio ponto, já que a multiplicação de matrizes exige uma somatória, como foi lembrado pelo victorwss.

P.S. Não vi que ela tinha escrito “obrigada”. Então não é um italiano cantor de ópera :stuck_out_tongue:

por isso justifica o final do post: você pode melhorar muito isso :stuck_out_tongue:

Olá, Andréia, prefiro acreditar que você realmente seja mulher.
Bem, há um erro grave numa descrição aí acima, estão dizendo que para se multiplicar duas matrizes o número de linhas da primeira deve ser igual ao número de colunas da segunda. Isso não é correto, o certo é o número de colunas da primeira deve ser igual ao número de linhas da segunda.

A matriz produto terá o número de linhas da primeira e o número de colunas da segunda. Dimensione corretamente essa matriz para receber os dados da multiplicação.
Por exemplo, seja a matriz A 3x3 (3 linhas e 3 colunas) e a outra matriz B 3x2 (3 linhas e 2 colunas), você pode fazer o produto AxB, pois o número de colunas de A é igual ao número de linhas de B (3). A matriz produto será do tipo 3x2 (3 linhas e 2 colunas). Mas você não poderá fazer a multiplicação BxA, pois o número de colunas de B (primeira) é 2 e o número de linhas de A (segunda) é 3.

Na multiplicação de uma matriz por outra deve-se mutiplicar os elementos das linhas da primeira com os elementos das colunas da segunda e ir somando. Vamos ver um exemplo:

Seja as matrizes anteriormente citadas.

Multiplicaremos os elementos da primeira linha de A com os respectivos elementos da primeira coluna de B e vamos somando os resulados. Veja:

A[1,1]*B[1,1] + A[1,2]*B[2,1] + A[1,3]*B[3,1]

Esse resultado dará origem ao elemento P[1,1] da matriz produto.

para obter o elemento P[1,2] da mariz produto recorra ao cálculo anterior e multiplique a primeira linha de A com a segunda coluna de B.
Para os outros elementos refaça os cálculos conforme explicado anteriormente.

Espero ter ajudado, qualquer dúvida, poste aí.

Desculpe aí, falha minha. :oops:

jzf vlw :smiley:

gostei mto

mto brigada viu jzf!!! :smiley:

[quote=Diego Lemos]Ótima idéia, acho que tbm vou pegar uma foto de qualquer menina no orkut criar um perfil aqui e pedir para vcs fazerem meus trabalhos da faculdade!!!

pela môr de deus hein…posta o código minha filha ou filho…seja lá o que for…[/quote]

:twisted: e por quê vc acha que meus personagens nesses mmorpg’s da vida são sempre femininos? :twisted:

Eu, sinceramente, tenho enormes dúvidas se uma moça com ‘porte atlético’ como essa do avatar perderia tempo na vida dela programando ou fazendo qqr curso que derivasse nisso :wink:

Mas, guardados os devidos comentários e voltando ao tópico:

[quote=Valder Olmo Corrêa]
A matriz produto terá o número de linhas da primeira e o número de colunas da segunda. Dimensione corretamente essa matriz para receber os dados da multiplicação.
Por exemplo, seja a matriz A 3x3 (3 linhas e 3 colunas) e a outra matriz B 3x2 (3 linhas e 2 colunas), você pode fazer o produto AxB, pois o número de colunas de A é igual ao número de linhas de B (3). A matriz produto será do tipo 3x2 (3 linhas e 2 colunas). Mas você não poderá fazer a multiplicação BxA, pois o número de colunas de B (primeira) é 2 e o número de linhas de A (segunda) é 3.

Na multiplicação de uma matriz por outra deve-se mutiplicar os elementos das linhas da primeira com os elementos das colunas da segunda e ir somando. Vamos ver um exemplo:

Seja as matrizes anteriormente citadas.

Multiplicaremos os elementos da primeira linha de A com os respectivos elementos da primeira coluna de B e vamos somando os resulados. Veja:

A[1,1]*B[1,1] + A[1,2]*B[2,1] + A[1,3]*B[3,1]

Esse resultado dará origem ao elemento P[1,1] da matriz produto.

para obter o elemento P[1,2] da mariz produto recorra ao cálculo anterior e multiplique a primeira linha de A com a segunda coluna de B.
Para os outros elementos refaça os cálculos conforme explicado anteriormente.

Espero ter ajudado, qualquer dúvida, poste aí. [/quote]

Absolutamente correto!

Como moderador eu tenho de tentar ser o mais imparcial possível, portanto eu desligo os avatares com o AdBlock (plugin do Firefox).

[quote=thingol][quote=dmandrak]
Eu, sinceramente, tenho enormes dúvidas se uma moça com ‘porte atlético’ como essa do avatar perderia tempo na vida dela programando ou fazendo qqr curso que derivasse nisso :wink:
[/quote]
Como moderador eu tenho de tentar ser o mais imparcial possível, portanto eu desligo os avatares com o AdBlock (plugin do Firefox).
[/quote]

Fora do tópico (podia ser por mensagem privada, mas vai ver interessa a mais pessoas):

Cara eu compreendo. Acho que tem que bloquear sim.

Porém, os meus não estão desligados :shock:

Tô usando o Chrome e os avatares estão todos a mostra.

[quote=thingol][quote=dmandrak]
Eu, sinceramente, tenho enormes dúvidas se uma moça com ‘porte atlético’ como essa do avatar perderia tempo na vida dela programando ou fazendo qqr curso que derivasse nisso :wink:
[/quote]
Como moderador eu tenho de tentar ser o mais imparcial possível, portanto eu desligo os avatares com o AdBlock (plugin do Firefox).
[/quote]

Caraca nunca tinha pensado nisso !!! rsrsrs

PS. Só to vendo esse topico porque tava vendo as mensagens do SR. Andrea que acabou de postar outro trabalhinho pra gente fazer = )

abraços

ola estou iniciando em java e queria que me ajudassem com esse codigo

package baskara;

import javax.swing.JOptionPane;
import java.lang.Math;
public class Main {

public static void main(String[] args) {
    String a,b,c;
    double a1,b1,c1,delta,x1,x2,raiz;
    
    a=JOptionPane.showInputDialog("digite valor para a");
    a1=Double.parseDouble(a);
    b=JOptionPane.showInputDialog("digite o valor para b");
    b1=Double.parseDouble(b);
    c=JOptionPane.showInputDialog("digite o valor para c;");
    c1=Double.parseDouble(c);
    delta=b1*b1-4*a1*c1;
    raiz=Math.sqrt(delta);
    if (raiz<0) 
        JOptionPane.showMessageDialog(null,"nao ha raizes");
    else 
        x1=-b+(raiz)/2*a);
         x2=-b-(raiz)/2*a);
         JOptionPane.showInputDialog(null,"valores"+delta);
}

}

[quote=junior1]ola estou iniciando em java e queria que me ajudassem com esse codigo

package baskara;

import javax.swing.JOptionPane;
import java.lang.Math;
public class Main {

public static void main(String[] args) {
    String a,b,c;
    double a1,b1,c1,delta,x1,x2,raiz;
    
    a=JOptionPane.showInputDialog("digite valor para a");
    a1=Double.parseDouble(a);
    b=JOptionPane.showInputDialog("digite o valor para b");
    b1=Double.parseDouble(b);
    c=JOptionPane.showInputDialog("digite o valor para c;");
    c1=Double.parseDouble(c);
    delta=b1*b1-4*a1*c1;
    raiz=Math.sqrt(delta);
    if (raiz<0) 
        JOptionPane.showMessageDialog(null,"nao ha raizes");
    else 
        x1=-b+(raiz)/2*a);
         x2=-b-(raiz)/2*a);
         JOptionPane.showInputDialog(null,"valores"+delta);
}

}

[/quote]

Porque você não começa um tópico seu ao invés de invadir e poluir tópicos alheios com questões diversas da original?

Essa Andreia ai é Andre… ainda por cima a foto é uma pessima montagem pothoshopisada… aposto que deve ter um monte de otario mandadando mp para o André ops quiz dizer Andréia fazendo a coisa toda para ele ops quiz dizer ela…

3 regras basicas:

  1. Gostosas não entram em forums de tecnologia
  2. Gostosas não falam com nerds
  3. Gostosas odeiam TI e exatas

Aposto se ele tivesse uma fotinho de uma loirassa tesuda no perfil vc não falaria isto…