viciado 1 Denunciar post Postado Junho 29, 2008 Como eu faço um programa que leia os valores de duas matrizes e retorne uma nova matriz com o resultado da multiplicação? Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Junho 29, 2008 Já deu alguma pesquisada sobre multiplicação de matrizes? O que você já fez até agora? Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Junho 29, 2008 hehe, fiz esse exericio há pouco tempo amigo. Faça uma busca no fórum de lógica de programação http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Junho 29, 2008 hehe, fiz esse exericio há pouco tempo amigo. Faça uma busca no fórum de lógica de programação http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif O que você fez ja está definido o numero de linhas e colunas Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Junho 29, 2008 como já está definido ?? usei constantes cara. Agora se quer que o usuário entre com a dimensão da matriz, vai ter que alterar algo :D Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Junho 30, 2008 Qual o link para ver se é o mesmo que eu estou pensando Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Junho 30, 2008 aheauheauheauehae ta ae -> http://forum.imasters.com.br/index.php?showtopic=292669 Compartilhar este post Link para o post Compartilhar em outros sites
ogroo 0 Denunciar post Postado Julho 1, 2008 Qual a sua dúvida? você vai fazer tudo no main ou vai fazer alguma função pra retorno da multiplicação? O usuário deverá entrar com o tamanho da matriz? ou o tamanho é fixo? tipo mat[3][3]? é mto simples... faça a leitura das duaz matrizes e faça uma terceira matriz pra receber a multiplicação tipo mat_resul[j] = mat_um[j] * mat_dois[j]; Espero ter ajudado []'s Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Julho 1, 2008 Qual a sua dúvida? você vai fazer tudo no main ou vai fazer alguma função pra retorno da multiplicação? O usuário deverá entrar com o tamanho da matriz? ou o tamanho é fixo? tipo mat[3][3]? é mto simples... faça a leitura das duaz matrizes e faça uma terceira matriz pra receber a multiplicação tipo mat_resul[j] = mat_um[j] * mat_dois[j]; Espero ter ajudado []'s Multiplicação da matriz não é feita assim Compartilhar este post Link para o post Compartilhar em outros sites
ogroo 0 Denunciar post Postado Julho 1, 2008 Não é assim? Bom então acho q você ta tentando fazer outra coisa,ou realmente eu nao entendi oque você quer fazer, pq se você quer a resultante da multiplicação é assim.. experimenta rodar esse algoritmo #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int matres[3][3],matum[3][3],matdois[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) cin>>matum[i][j]; for(i=0;i<3;i++) for(j=0;j<3;j++) cin>>matdois[i][j]; for(i=0;i<3;i++) for(j=0;j<3;j++) matres[i][j] = matum[i][j] * matdois[i][j]; for(i=0;i<3;i++){ for(j=0;j<3;j++){ cout<<matres[i][j]<<" "; } cout<<endl; } system("pause"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 1, 2008 dei um find no google e olha como eu achei: void MultiplicaMatrizes(int M1[100][100],int L1, int C1, int M2[100][100], int L2, int C2, int *M3[100][100]) { if(C1 != L2) { printf("Soh pode haver multiplicacao se C1 = L2"); return; } for(int i = 0; i < L1; i++) { for(int j = 0; j < C2; j++) { M3[i][j] = 0; for(int k = 0; k < C1; k++) { M3[i][j] += M1[i][k] * M2[k][j]; } } } } Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Julho 1, 2008 Qual a sua dúvida? você vai fazer tudo no main ou vai fazer alguma função pra retorno da multiplicação? O usuário deverá entrar com o tamanho da matriz? ou o tamanho é fixo? tipo mat[3][3]? é mto simples... faça a leitura das duaz matrizes e faça uma terceira matriz pra receber a multiplicação tipo mat_resul[j] = mat_um[j] * mat_dois[j]; Espero ter ajudado []'s ahuehauhaeae como vai multiplicar matrizes assim velho ?? Procure em suas apostilas de matemática ae ;) Compartilhar este post Link para o post Compartilhar em outros sites
ogroo 0 Denunciar post Postado Julho 1, 2008 Poize, se as pessoas que postassem suas dúvidas colocam o problema realmente como ele é nao precisaria ver comentarios como os seus Groove.. Eu aconselho o uso de alocação dinâmica de memória pra resolve isso.. Att Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Julho 2, 2008 ueh, mas ele colocou o problema como realmente é, pra fazer multiplicação de matrizes tem q obedecer uma lógica lá...não sei o que é alocação dinâmica de memória...mas consegui resolver sem isso "/ veja meu tópico lá :D Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Julho 2, 2008 Fiz o seguinte código: #include<stdio.h> int main(void) { int l1,l2,c1,c2; int i,j,k,l,m; int m3[i][j]; printf("Digite o número de linhas da primeira matriz"); scanf("%d",&l1); printf("Digite o número de colunas da primeira matriz"); scanf("%d",&c1); int m1[l1][c1]; printf("Digite o número de linhas da segunda matriz"); scanf("%d",&l2); printf("Digite o número de colunas da segunda matriz"); scanf("%d",&c2); int m2[l2][c2]; for(i=0; i<l1; i++) { for(j=0; j<c1; j++) { printf("Digite um valor"); scanf("%d",&m1[i][j]); } } for(i=0; i<l2; i++) { for(j=0; j<c2; j++) { printf("Digite um valor"); scanf("%d",&m2[i][j]); } } if(c1!=l2) { printf("Não é possivel realizar a multiplicação"); } else { for(i=0; i<l1; i++) { for(j=0; j<c2; j++) { m3[i][j]=0; for(k=0; k<c1; k++) { m3[i][j]+= m1[i][k]*m2[k][i]; } } } } printf("\nA multiplicação é:\n%d",m3[i][j]); return(0); } So que ta dando falha de segmentação Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 2, 2008 Provavelmente você acessou memoria que nao deveria. Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Julho 2, 2008 m3[i][j]+= m1[i][k]*m2[k][i]; não seria aqui o erro ?? na multiplicação ali, o correto é m2[k][j] O que é erro de segmentação ? Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Julho 2, 2008 m3[i][j]+= m1[i][k]*m2[k][i]; não seria aqui o erro ?? na multiplicação ali, o correto é m2[k][j] O que é erro de segmentação ? Agora esta mostrando a seguinte mensagem: "Erro de sintaxe proximoa simbolo inesperado ;" Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 2, 2008 Acontece quando você lê pedaco de memoria nao permitido. Agora esta mostrando a seguinte mensagem: "Erro de sintaxe proximoa simbolo inesperado ;" Vai na linha onde ta o erro e arruma,oras...Erro de sintaxe eh erro de digitacao (coisa fora da gramatica da linguagem) Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Julho 2, 2008 Acontece quando você lê pedaco de memoria nao permitido. Agora esta mostrando a seguinte mensagem: "Erro de sintaxe proximoa simbolo inesperado ;" Vai na linha onde ta o erro e arruma,oras...Erro de sintaxe eh erro de digitacao (coisa fora da gramatica da linguagem) Arrumei, mais continua dando falha de segmentação (core dumped) Compartilhar este post Link para o post Compartilhar em outros sites