Multiplicação de 2 matrizes

Publicado por Elto Mas 23/04/2004

[ Hits: 13.854 ]

Download mult_matrizes.cpp




Multiplica 2 matrizes quadradas de ordem inferior a 10

  



Esconder código-fonte

    /*Escreva um programa que leia dua matrizes bidimensionais
    Autor: Edson Tomaselli
    Unoesc JBA
    Eng Eletrica 
    Obs.: Para compilar no GNU/Linux necessita das bibliotecas ncurses */
    #include <stdio.h>
    #include "conio.c"
    #include <stdlib.h>
    
void inicio()
{
   clrscr();
   gotoxy(5,1);
   printf("PROGRAMA: LE DUAS MATRIZES BIDIMENSIONAIS E EFETUA MULTIPLICACAO");
   return;
}
main()
    {
    int i,j,k,h,ordem,matriz1[10][10],matriz2[10][10],matriz3[10][10];
        inicio();
        gotoxy(5,3);
        printf("Informe a Ordem das Matrizes: ");
        scanf("%i",&ordem);
        inicio();
        for(i=0;i<ordem;i++)
        {
        gotoxy(5,4);
        printf("Matriz 1");
        gotoxy(5,5+i);
        printf("Linha %i: ",i+1);
        h=0;
            for(j=0;j<ordem;j++)
            {
            gotoxy(25+j+h,5+i);
            scanf("%i",&matriz1[i][j]);
            h=h+2;
            }
        }
        //Le Matriz 2
        inicio();
        for(i=0;i<ordem;i++)
        {
        gotoxy(5,4);
        printf("Matriz 2");
        gotoxy(5,5+i);
        printf("Linha %i: ",i+1);
        h=0;
            for(j=0;j<ordem;j++)
            {
            gotoxy(25+j+h,5+i);
            scanf("%i",&matriz2[i][j]);
            h=h+2;
        }
    }
    printf("Pressione ENTER para continuar");
    getch();
    for(i=0;i<ordem;i++)
        {
        for(j=0;j<ordem;j++)
             {
             matriz3[i][j]=0;
             for(k=0;k<ordem;k++)   
                   {
                   matriz3[i][j]=matriz3[i][j]+matriz1[i][k]*matriz2[k][j];
                   }
              }
         }       
    //Imprime a multiplicacao das Matrizes
    inicio();
        for(i=0;i<ordem;i++)
        {
        gotoxy(10,6);
        printf("Matriz A");
        gotoxy(27,9);
        printf("*");
        gotoxy(30,6);
        printf("Matriz B");
        gotoxy(47,9);
        printf("=");
        gotoxy(50,6);
        printf("A * B");
        h=0;
        for(j=0;j<ordem;j++)
            {
            gotoxy(10+j+h,8+i);
            printf("%3i",matriz1[i][j]);
            gotoxy(30+j+h,8+i);
            printf("%3i",matriz2[i][j]);
            gotoxy(50+j+h,8+i);
            printf("%3i",matriz3[i][j]);
            h=h+3;
        }
    }
  getch();  
}

Scripts recomendados

Cálculo de signos em C

Bits trocados

Filas em C

Visualizador hexadecimal

Lendo arquivos de Texto no C#


  

Comentários
[1] Comentário enviado por ronaldovc em 02/12/2004 - 00:40h

Esse script me ajudou muito, pois não estava conseguindo fazer isso, o meu tava dando pau toda hora... Mas vi uma coisa aqui que parou o problema!!! Valeu


Contribuir com comentário