Programação Progressiva
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

Função que recebe matriz

Ir para baixo  Mensagem [Página 1 de 1]

1Função que recebe matriz Empty Função que recebe matriz Seg Out 20, 2014 3:58 pm

Thiago Alves Piermatei



Bom dia Galera do C PROGRESSIVO !!!
Galera, tô com a seguinte dúvida:


Vi em algumas publicações do C PROGRESSIVO que uma função que recebe como argumento uma matriz deverá ser escrita da seguinte forma, ex:  int MudaMatriz(int mat[][tam], int i, int j){
//instrução
}

segue o código do C progressivo: #include <stdio.h>
#define DIM 3
// Curso C Progressivo:
// O melhor curso de C! Online e gratuito !
// Artigos, apostilas, tutoriais e vídeo-aulas sobre
// a linguagem de programação C !

void recebe(int original[][DIM])
{
   int linha,
       coluna;

   for(linha = 0 ; linha < DIM ; linha++)
       for(coluna = 0 ; coluna < DIM ; coluna++)
       {
           printf("Digite o elemento [%d][%d]: ", linha+1, coluna+1);
           scanf("%d", &original[linha][coluna]);
       }
}

void copiar(int copiado[][DIM], int original[][DIM])
{
   int linha,
       coluna;

   for(linha = 0 ; linha < DIM ; linha++)
       for(coluna = 0 ; coluna < DIM ; coluna++)
           copiado[linha][coluna] = original[linha][coluna];
}

void dobrar(int dobrado[][DIM], int original[][DIM])
{
   int linha,
       coluna;

   for(linha = 0 ; linha < DIM ; linha++)
       for(coluna = 0 ; coluna < DIM ; coluna++)
           dobrado[linha][coluna] = 2 * original[linha][coluna];
}

void exibir(int matriz[][DIM])
{
   int linha,
       coluna;

   for(linha = 0 ; linha < DIM ; linha++)
   {
       for(coluna = 0 ; coluna < DIM ; coluna++)
           printf("%3d ", matriz[linha][coluna]);

       printf("\n");
   }
}

int main(void)

{
   int original[DIM][DIM],
       copia[DIM][DIM],
       dobrado[DIM][DIM];

   recebe(original);
   copiar(copia, original);
   dobrar(dobrado, original);

   printf("Vetor original: \n");
   exibir(original);

   printf("\nVetor copiado : \n");
   exibir(copia);

   printf("\nVetor dobrado : \n");
   exibir(dobrado);
   return 0;

}


Entendi perfeitamente o Código, porem surgiu a seguinte dúvida: No código do c progressivo, é criado uma constante "dim" que é "vista" pelas funções e pelo main. (acredito ser uma variavel global, não sei rs). Queria saber se há a possibilidade de passar uma matriz para uma função, de modo que não seja necessário criar uma const, ou um #include. Porque eu tô perguntando isso? Por exemplo eu crie um programa que seja solicitado o usuário a dimensionar a matriz, ai ele determina que a matriz tenha uma dimensão 3x3, a variavel que receberá as dimensões é uma variável local (vista apenas dentro do main), como que eu colocaria a dimensão dentro da função (void RecebeFunção (int mat[][???])) Entenderam?

Att Thiago
Desde já agradeço!!

aguardo!

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos