Operações Com Matrizes

Publicado por José Mario Silva Rosa Filho 16/12/2008

[ Hits: 18.194 ]

Download Soma Matriz.cpp




Faz operações simples com matrizes, bem como ensina seu funcionamento!

  



Esconder código-fonte

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

#define N 10

int matrix[N][N],linha,coluna;

void erro(){

     system("cls");
     
     printf("Voce inseriu um valor superior ou inexistente para a linha ou a coluna da matriz!\n");
     if(linha && coluna){
              printf("Os valores maximos de linhas sao %d e colunas sao %d\n",linha,coluna);
              printf("E devem estar concentradros no intervalo de 1 ate o maximo.\n");
     }
     
system("pause");
}

void criamatrix(){

     int i,j;
     system("cls");
     printf("Coloque a quantidade de linhas da matriz: ");
     scanf("%d",&linha);
     printf("Coloque a quantidade de colunas da matriz: ");
     scanf("%d",&coluna);
     system("cls");
     for(i=0;i<linha;i++){
           for(j=0;j<coluna;j++){
               printf("Coloque o elemento %d,%d ",i+1,j+1);
               scanf("%d",&matrix[i][j]);
       }
     }
     system("cls");
}

void somax(int x){
     system("cls");
     int i,j,soma=0;
     for(i=x;i<=x;i++){
         for(j=0;j<coluna;j++){
                      
                      soma += matrix[i-1][j];
                            
       }
     }
     
     for(i=0;i<linha;i++){
                     printf("| ");
                     for(j=0;j<coluna;j++){
                                      printf("%-3d ",matrix[i][j]);
                                      }
                     printf("|\n");
     }
     
     printf("A soma da linha %d da matriz e: %d\n\n\n",x,soma);
     
system("pause");
}

void somay(int y){
     system("cls");
     int i,j,soma=0;
     
     for(i=0;i<=linha;i++){
         for(j=y;j<=y;j++){
                      
                      soma += matrix[i][j-1];
                            
       }
     }
     
     for(i=0;i<linha;i++){
                     printf("| ");
                     for(j=0;j<coluna;j++){
                                      printf("%-3d ",matrix[i][j]);
                                      }
                     printf("|\n");
     }
     
     printf("A soma da coluna %d da matriz e: %d\n\n\n",y,soma);
     
system("pause");
}

void somadp(){
     system("cls");
     int i,j,soma=0;
     
     for(i=0;i<linha;i++){
         for(j=i;j<=i;j++){
                      
                      soma += matrix[i][j];
                            
       }
     }
     
     for(i=0;i<linha;i++){
                     printf("| ");
                     for(j=0;j<coluna;j++){
                                      printf("%-3d ",matrix[i][j]);
                                      }
                     printf("|\n");
     }
     
     printf("A soma da diagonal principal da matriz e: %d\n\n\n",soma);
     
system("pause");
}


void somads(){
     system("cls");
     int i,j,soma=0;
     
     for(i=0;i<linha;i++){
         for(j=coluna-i;j>=coluna-i;j--){
                      
                      soma += matrix[i][j-1];
                            
       }
     }
     
     for(i=0;i<linha;i++){
                     printf("| ");
                     for(j=0;j<coluna;j++){
                                      printf("%-3d ",matrix[i][j]);
                                      }
                     printf("|\n");
     }
     
     printf("A soma da diagonal secundaria da matriz e: %d\n\n\n",soma);

system("pause");
}

void somaall(){
     
     system("cls");
     int i,j,soma=0;
     
     for(i=0;i<linha;i++){
         for(j=0;j<coluna;j++){
                      
                      soma += matrix[i][j];
                            
       }
     }
     
     for(i=0;i<linha;i++){
                     printf("| ");
                     for(j=0;j<coluna;j++){
                                      printf("%-3d ",matrix[i][j]);
                                      }
                     printf("|\n");
     }
     
     printf("A soma total da matriz e: %d\n\n\n",soma);
     
system("pause");


}

void creditos(){
        
        system("cls");
        printf("+-----------------------------------------------------------+\n");
        printf("|Programa Desenvolvido Por:                                 |\n");
        printf("|                           Jos%c Mario Silva Rosa Filho     |\n",130);
        printf("|\"Todo homem procura o sentido de sua exist%cncia, mas nem   |\n",136);
        printf("|todos encontram o caminho.\" Jos%c Mario                     |\n",130);
        printf("|                           zemariosrf@hotmail.com          |\n");
        printf("|                           06/06/2008 02:15                |\n");
        printf("+-----------------------------------------------------------+\n\n\n");
    
}     

void opcao(){
     
    int x;
    system("cls");
        
    do{
       system("cls");
       printf("Escolha uma das Opcoes para execucao do programa.\n");   
       printf("+------------------------------------------------------------------------------+");
       printf("|                                                                              |");
       printf("|                                                                              |");
       printf("|1)Criar uma matriz.                         linha x coluna                    |");
       printf("|2)Somar elementos da linha X da matriz.                                       |");
       printf("|3)Somar elementos da coluna Y da matriz.                                      |");
       printf("|4)Somar elementos da Diagonal Principal.                                      |");
       printf("|5)Somar elementos da Diagonal Secundaria.                                     |");
       printf("|6)Todos os elementos da Matriz.                                               |");
       printf("|7)Mostrar Creditos.                                                           |");
       printf("|                                                                              |");
       printf("+------------------------------------------------------------------------------+");
       
       scanf("%d",&x);
    }
    while(x < 1 || x > 6);
    
        switch(x){
            
            case 1:{
                 criamatrix();
                 opcao();
            break;
            }
            
            case 2:{
                 int x;
                 system("cls");
                 printf("Coloque a linha que quer realizar a soma?\n");
                 scanf("%d",&x);
                 if(x > linha || x <= 0)erro();
                 somax(x);
                 opcao();
            break;
            }      
                  
            case 3:{
                 int y;
                 system("cls");
                 printf("Coloque a coluna que quer realizar a soma?\n");
                 scanf("%d",&y);
                 if(y > linha || y <= 0)erro();
                 somay(y);
                 opcao();
            break;
            }
         
            case 4:{
                 somadp();
                 opcao();
            break;
            }
            
            case 5:{
                 somads();
                 opcao();
            break;
            }
            case 6:{
                 somaall();
                 opcao();
            break;
            }
            case 7:{
                 creditos();
            break;
            }
      }
}

void menu(){

        system("cls");
        
        int x;
        printf("+--------------------------------------------------------+\n");
        printf("|        Bem vindo ao Programa Soma da Matriz            |\n");
        printf("|                                                        |\n");
        printf("|        Escolha a opcao:                                |\n");
        printf("|                                                        |\n");
        printf("|        1)Entrar no Somador                             |\n");
        printf("|        2)Ver Creditos e Sair                           |\n");
        printf("|                                                        |\n");
        printf("|                                                        |\n");
        printf("+--------------------------------------------------------+\n");
        
        do{
                       scanf("%d",&x);
        }
        
        while(x < 1 || x > 2);
                if(x == 1)opcao();
        
        else creditos();
   

  getch();   

}

int main(){
     
     menu();
     
return(0);
}

Scripts recomendados

Imprimir maior número

Strlen (parte 2)

Selection sort

Aplicações em listas dinâmicas

Simples exemplo de manipulação de vetores


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts