Utilizando matrizes
Publicado por Marcos (última atualização em 28/08/2012)
[ Hits: 3.654 ]
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!
/*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]); } }
Tabela hash com classes e tratamento de colisões por encadeamento
Parte 3 - Sessão de estudo sobre VETORES
Árvore binária de busca, algoritmos de inserção, caminhamento e busca explicados
Salario bruto e liquido de um funcionario
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta