Utilizando matrizes

Publicado por Marcos (última atualização em 28/08/2012)

[ Hits: 3.559 ]

Download 5532.main.cpp




Este script tem a intenção de servir como material de apoio para iniciantes (assim com eu), tentei fazer da forma mais clara possível.

Uma matriz é vista como um vetor, a diferença é que fica "claro" que o compilador precisará fazer alguns "saltos" que é indicado pelo campo colunas na declaração ou na chamada da função. Neste código fica nítido que na implementação de todas as funções, na variável matriz eu omiti o valor do campo referente as linhas, visto que conforme explicado anteriormente este valor será simplesmente ignorado pelo compilador, uma vez que ele se preocupa apenas com a quantidade de saltos  precisará fazer.

Espero que seja útil.

Sugestões são sempre bem-vindas!

  



Esconder código-fonte

/*programa carrega uma matriz de no máximo 15x18 e efetue a soma, multiplicação e impressão desses valores.
relembrando: matrizes e vetores são sempre passados por referencia*/

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

//utilizando protótipos das funções
void carregaMatriz(int matriz[][18],int linhas, int colunas);//responsável por carregar a matriz
void somaMatriz(int matriz[][18],int matriz2[][18],int adicao[][18],int linhas,int colunas);//responsável pela soma entre matrizes
void multiplicaMatriz(int matriz[][18],int multiplica[][18],int x, int linhas, int colunas);//multiplica 1ª matriz por um fator informando pelo usuario
void imprimeMatriz(int matriz[][18],int linhas, int colunas);//mostra os resultados na tela

int main(){
    int x,linhas,colunas,matriz[15][18],matriz2[15][18],adicao[15][18],multiplica[15][18];

    printf("Informe a qtde de linhas da matriz: ");
    scanf("%d",&linhas);
    while(linhas>15){
        printf("\nNumero de linhas invalido...");
        printf("\n\nInforme a qtde de linhas da matriz: ");
        scanf("%d",&linhas);
    }

    printf("Informe a qtde de colunas da matriz: ");
    scanf("%d",&colunas);
    while(colunas>18){
        printf("\nNumero de colunas invalido...");
        printf("\n\nInforme a qtde de colunas da matriz: ");
        scanf("%d",&colunas);
    }

    printf("\n\nCarregando valores da primeira matriz: \n");
    carregaMatriz(matriz,linhas,colunas);

    printf("\n\nCarregando valores da segunda matriz: \n");
    carregaMatriz(matriz2,linhas,colunas);

    printf("\n\nInforme o fator de multiplicacao: ");
    scanf("%d",&x);

    somaMatriz(matriz,matriz2,adicao,linhas,colunas);
    multiplicaMatriz(matriz,multiplica,x,linhas,colunas);

    printf("\n\n\nResultado da soma: \n");
    imprimeMatriz(adicao,linhas,colunas);

    printf("\n\n\nResultado da multiplicacao: \n");
    imprimeMatriz(multiplica,linhas,colunas);

    printf("\n\n");
    system("pause");
    return 0;
}

void carregaMatriz(int matriz[][18],int linhas, int colunas){
    for(int i=0;i<linhas;i++){
        for(int j=0;j<colunas;j++){
            printf("Informe um valor para linha: %d x coluna: %d = ",i,j);
            scanf("%d",&matriz[i][j]);
        }
    }
}

void somaMatriz(int matriz[][18],int matriz2[][18],int adicao[][18],int linhas,int colunas){
    for(int i=0;i<linhas;i++){
        for(int j=0;j<colunas;j++)
            adicao[i][j]=matriz[i][j]+matriz2[i][j];
    }
}

void multiplicaMatriz(int matriz[][18],int multiplica[][18],int x, int linhas, int colunas){
    for(int i=0;i<linhas;i++){
        for(int j=0;j<colunas;j++)
            multiplica[i][j]=x*matriz[i][j];
    }
}

void imprimeMatriz(int matriz[][18],int linhas, int colunas){
    for(int i=0;i<linhas;i++){
        for(int j=0;j<colunas;j++)
            printf("\nLinha: %d -- Coluna: %d = %d",i,j,matriz[i][j]);
    }
}

Scripts recomendados

Sistema Númerico

Hello world 1

Algoritmo em C - Ordenação por Seleção

Programinha de lógica básico

Caixa eletronico em C


  

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