Utilizando matrizes
Publicado por Marcos (última atualização em 28/08/2012)
[ Hits: 4.047 ]
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]);
}
}
C --> Calculadora de equações de 2º grau explicada.
Nenhum comentário foi encontrado.
File Browser: Crie sua Nuvem Pessoal Privada
A produção de áudio e vídeo no Linux e as distribuições dedicadas a esse fim
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
Gerenciamento de Vídeo Híbrido (Intel/NVIDIA) via nvidia-prime no Ubuntu e derivados
Assistindo IPTV no Linux com Fred TV e Lista Free TV
Impressora Tomate MDK-007 no Ubuntu (ou qualquer distro Linux)
Acelerando a compilação de pacotes no Arch Linux (AUR) usando todos os núcleos do processador
Depois não querem que eu fale sobre as baseadas... (4)
Tive um problema ao abrir minha partição Btrfs. Como posso resolver is... (0)









