domingo, 4 de novembro de 2012

Multiplicação de Raiz em C


Um grande exemplo de código que multiplica matrizes em C com comentarios.

No entanto antes eu gostaria de demonstrar rapidamente o cálculo de multiplicação de matriz para poder entendermos o código em C:

Multiplicação de Matrizes:


A multiplicação de matrizes é realizada de acordo com a seguinte condição: o número de colunas da 1ª matriz deve ser igual ao número de linhas da 2ª matriz. Observe alguns modelos de matrizes que podem ser multiplicadas, considerando o formato m x n.

A4x3 * B3x1

A4x2 * B2x3

A1x2 * B2x2

A3x4 * B4x3

Nesse modelo de multiplicação, os métodos são mais complexos. Dessa forma, precisamos ter muita atenção na resolução de uma multiplicação de matrizes. Vamos através de exemplos, demonstrar como efetuar tais cálculos. A operação deverá ser feita multiplicando os membros da linha da 1º matriz pelos membros da coluna da 2º matriz, onde os elementos devem ser somados, constituindo um único item posicional da matriz.Observe um modelo padrão de multiplicação:



Exemplo 1




Realizamos uma multiplicação entre uma matriz A de ordem 2 x 3 por uma matriz B de ordem 3 x 2. Observe que a condição “o número de colunas da 1ª matriz deve ser igual ao número de linhas da 2ª matriz”, foi válida, pois 3 = 3. O interessante é que a matriz, produto da multiplicação, é de ordem 2 x 2, isto é, 2 linhas e 2 colunas, possuindo o mesmo número de linhas da 1ª e o mesmo número de colunas da 2ª.

Portanto, todas essas condições são observadas na multiplicação entre matrizes. Caso alguma dessas condições não seja válida, a operação da multiplicação estará efetuada de forma incorreta. Sempre que realizar multiplicação entre matrizes, faça de forma atenciosa, desenvolvendo completamente o processo, procurando não utilizar meios diretos para obter o resultado. 

fonte: http://www.brasilescola.com/matematica/multiplicacao-matrizes.htm

Agora segue o Código em C para multiplicação de Matrizes, dado a entrada de uma matriz A e B a serem multiplicadas:



#include


main()
{

//Definição de variaveis
int i, j, l, c, l1, c1, X;

//Entrada de dados
printf("\n Informe a quantidade de linhas da matriz A : ");
scanf("%d",&l);
printf("\n Informe a quantidade de colunas da matriz A : ");
scanf("%d",&c);
printf("\n Informe a quntidade de linhas da matriz B : ");
scanf("%d",&l1);
printf("\n Informe a quantidade de colunas da matriz B : ");
scanf("%d",&c1);
float matrizA[l][c],matrizB[l1][c1],matrizC[c][l1],Aux=0;
if(c==l1)
{
for(i=0; i{
         for(j=0; j         {
         printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167);
         scanf("%f", &matrizA[i][j]);
         }
         printf("\n");
         }
for(i=0; i{      
         for(j=0; j         {
         printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167);
         scanf("%f", &matrizB[i][j]);
         }
         printf("\n");
         }
printf("---------------------------- 1 - Matriz Gerada ---------------------------------\n\n");
for(i=0; i{      
         for(j=0; j         {
         printf("%6.f", matrizA[i][j]);
/* "%6.f" significa para eliminar 6 casas decimais dos componentes dados */
         }
         printf("\n\n");
         }
printf("---------------------------- 2 - Matriz Gerada ---------------------------------\n\n");
for(i=0; i{
         for(j=0; j         {
         printf("%6.f", matrizB[i][j]);
         }
         printf("\n\n");
         }
//Processamento e saida em tela
for(i=0; i{
         for(j=0; j         {
                  matrizC[i][j]=0;
                  for(X=0; X                  {
                  Aux += matrizA[i][X] * matrizB[X][j];
                  }
                  matrizC[i][j]=Aux;
                  Aux=0;
                  }
                  }
                  printf("\n\n");
printf("---------------------------- 3 - Matriz Gerada ---------------------------------\n\n");
for(i=0; i{
         for(j=0; j         {
         printf("%6.f", matrizC[i][j]);
         }
         printf("\n\n");
         }
         printf("\n\n");
         }
else
{
printf("\n\n Nao ha com multiplicar as matrizes dadas \n\n");
}


}



fim do código

fonte: http://forum.clubedohardware.com.br/multiplicacao-matrizes-c/546890

http://macboypro.wordpress.com/2009/05/20/matrix-multiplication-in-c-using-pthreads-on-linux/

Nenhum comentário:

Postar um comentário