Operações Com Matrizes

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

[ Hits: 18.181 ]

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

Utilização de Ponteiros em C (2)

Uso do Comando Printf

Pilha estática

Uptime para tempo humano

Calculo de Área e Diametro do circulo


  

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