Ir ao conteúdo

Posts recomendados

Postado

gostaria de saber se esta certo essa multiplicacao d matrizes 

public class ex5{
    public static void main(String args[]){
            /* 5 Escreve um programa que leia duas matrizes,
                realize a multiplicação entre elas
                            e armazene em uma terceira matriz.*/
            int m1[][]=new int[2][2];
            int m2[][]=new int[2][2];                    
            int mr[][]=new int[2][2];                    
            int i,j,k;                    
                                
            for(i=0;i<2;i++){
                    for(j=0;j<2;j++){
                        m1 [j]=Input.readInt("Informe a matriz m1["+i+"]["+j+"]: ");        
                        m2 [j]=Input.readInt("Informe a matriz m2["+i+"]["+j+"]: ");        
                    }                
            }//matriz resultante recebendo a m1 e m2 multiplicadas, mr todos indices com 0;
                for(i=0;i<2;i++){
                    for(j=0;j<2;j++){
                            mr [j]=0;
                        for(k=0;k<2;k++){
                                mr[j]=(m1 [k]*m2[k][j]);
                            }
                            }    
                        }
                        for(i=0;i<2;i++){
                            for(j=0;j<2;j++){
                                System.out.print(mr [j]+ " | ");    
                            }    
                                System.out.println();
                            }    
                            }
                        }


    
    

na ond ta so [j] é [j], na hora q eu publico some o ou o [j]

  • Membro VIP
Postado

Olá @ddp r, por favor, posta novamente o seu código, mas dentro da tag CODE (botão <>).  Sem a tag, o site entende que o [ i ] é uma tag para itálico, ai fica bugado... entre outras coisas :)


Ex.:
Sem tag CODE:
            System.out.print(mr[j]," | ");

Com tag CODE:

            System.out.print(mr[i][j]," | ");

 

No aguardo.

Postado

@ddp r  Boa noite amigo, analisei seu código e eu não conhecia a classe Input, apenas a scan, pelo que vi há um erro de códificação quando você inicializa a matris

 

/*Errado */
for(i=0;i<2;i++){
  for(j=0;j<2;j++){
	m1 [j]=Input.readInt("Informe a matriz m1["+i+"]["+j+"]: ");        
	m2 [j]=Input.readInt("Informe a matriz m2["+i+"]["+j+"]: ");        
}
/* Correto */
for(i=0;i<2;i++){
  for(j=0;j<2;j++){
	m1 [i][j]=Input.readInt("Informe a matriz m1["+i+"]["+j+"]: ");        
	m2 [i][j]=Input.readInt("Informe a matriz m2["+i+"]["+j+"]: ");        
}

e também na hora do calculo não compreendi bem, então acredito que isso que gerava o erro.
Tomei liberdade e refiz seu código, analise a formula e estude o código, caso ocorra algum erro me avise que lhe ajudarei.;)

 

/**
 * 
 * @author Rio
 * @History : 16/12/2015
 * 	
 * Multiplicação de matrizes.
 */
public class ex5{
    public static void main(String args[]){
            /* 5 Escreve um programa que leia duas matrizes,
                realize a multiplicação entre elas
                            e armazene em uma terceira matriz.*/
            int m1[][]=new int[2][2];
            
            int m2[][]=new int[2][2];                    
                                
            int i,j,k;                    
            /* Inicializa primeira matriz. */                    
            for(i=0;i<2;i++){
                    for(j=0;j<2;j++){
                    	m1[i][j] =2;
                    }                
            }
            /* Inicializa a segunda */
            for(i=0;i<2;i++){
                for(j=0;j<2;j++){
                	m2[i][j] =3;
                }                
            }
            /*  */
            int mr[][]=new int[m1.length][m2[0].length];
            
            
            /* Produto da primeira matriz (m1) com a segunda(m2) 
             * Resultando em uma matriz 2x2(mr)
             * Calculo : mr[0][0] = m1[0][0]*m2[0][0] + m1[1][0]*m[0][1] */
            for(i=0;i<2;i++){
                for(j=0;j<2;j++){
                	mr[i][j] =retornaValorProdutoMatriz(m1,m2,i,j);
                }                
            }
            
            for(i=0;i<2;i++){
                for(j=0;j<2;j++){
                	System.out.print(mr[i][j] +"|");;
                }
                System.out.print("\n-------------\n");
            }
            
    	}
    

	public static int retornaValorProdutoMatriz(int m1[][],int m2[][], int linha, int coluna){
		
		int soma=0;
		
		for(int i=0;i<m1.length;i++){
			soma += m1[linha][i]*m2[i][coluna];
		}
		
		
		return soma;
	}
	}

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!