Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
vetor_matriz [d/mY H:i]
laureano
vetor_matriz [d/mY H:i] (atual)
laureano
Linha 5: Linha 5:
 Sintaxe: Sintaxe:
  
-[[tipos_dados|tipo_variável]] [[variavel_definicao|nome_vetor]][tamanho];​+''​[[tipos_dados|tipo_variável]] [[variavel_definicao|nome_vetor]][tamanho];​''​
  
 ---- ----
Linha 101: Linha 101:
  
 <code c> <code c>
-/* programa ​vetor_iMatriz_3.c */+/* programa ​vetor_matriz_3.c */
  
 #include <​stdio.h>​ #include <​stdio.h>​
Linha 148: Linha 148:
 } }
 </​code>​ </​code>​
 +
 +
 +===== Inicializando Matrizes =====
 +
 +Sintaxe:
 +
 +  * Para vetores
 +''​[[tipos_dados|tipo_variável]] [[variavel_definicao|nome_vetor]][5] = {vlr_1, vlr_2, vlr_3, vlr_4, vlr_5 };''​
 +
 +  * Para Matrizes
 +''​[[tipos_dados|tipo_variável]] [[variavel_definicao|nome_matriz]][2][2] = { {vlr_11,​vlr_12},​ {vlr_21,​vlr_22} };''​
 +
 +----
 +Pode-se, ao mesmo tempo em que se define a matriz, inicializá-la com valores, utilizando a seguinte sintaxe. ​
 +   * Os valores devem ser colocados de acordo com as dimensões ​
 +   * Cada dimensão deve ser colocada dentro de ''​{''​ e ''​}''​. ​
 +   * Não pode pular valores, todos os valores devem ser colocados. ​
 +
 +Veja o exemplo:
 +
 +<code c>
 +/* programa vetor_matriz_4.c */
 +
 +#include <​stdio.h>​
 +int main (void)
 +{
 +   int i,j, k;
 +   int iMatriz_1 [5] = {1, 2, 3, 4, 5};
 +   int iMatriz_2 [3][3] = {{11, 12, 13},
 +                           {21, 22, 23},
 +                           {31, 32, 33}};
 +   int iMatriz_3 [3][2][2] = {{{111, 112},
 +                               {121, 122}},
 +                              {{211, 212},
 +                               {221, 222}},
 +                              {{311, 312},
 +                               {321, 322}}};
 +
 +   ​printf("​Primeira Matriz\n"​);​
 +   for (i=0; i < 5; i++)
 +   {
 +      printf ("%d ", iMatriz_1 [i]);
 +   }
 +   ​printf ("​\n\n"​);​
 +
 +   ​printf ("​Segunda Matriz\n"​);​
 +   for (i=0; i < 3; i++)
 +   {
 +      for (j=0; j < 3; j++)
 +      {
 +         ​printf("​%d ", iMatriz_2 [i][j]);
 +      }
 +      printf("​\n"​);​
 +   }
 +   ​printf("​\n"​);​
 +
 +   ​printf ("​Terceira Matriz\n"​);​
 +   ​for(i=0;​ i < 3; i++)
 +   {
 +      for (j=0; j < 2; j++)
 +      {
 +         for (k=0; k < 2; k++)
 +         {
 +            printf("​%d ", iMatriz_3 [i][j][k]);
 +         }
 +         ​printf("​\n"​);​
 +      }
 +      printf("​\n"​);​
 +   }
 +   ​return 0;
 +}
 +</​code>​
 +
 +===== Matrizes como Parâmetros =====
 +
 +Quando se coloca um vetor como parâmetro, a Linguagem C passa somente o seu endereço, não fazendo uma cópia na pilha. Portanto, pode-se definir o parâmetro sem a quantidade de elementos, pois como só será recebido o endereço pode-se acessar toda a matriz através deste endereço. ​
 +
 +A mesma regra se aplica a matrizes para o caso da primeira dimensão. Pode-se não informar a quantidade de elementos da primeira dimensão. Devido á construção sintática da linguagem, deve-se porém informar as demais dimensões para que o compilador gere o código corretamente.
 +
 +Veja o exemplo:
 +<code c>
 +/* programa vetor_matriz_5.c */
 +#include <​stdio.h>​
 +
 +void imprime_1(int iVetor[]) /* Não é preciso informar o tamanho do índice.... */
 +{
 +   int i;
 +   ​printf("​Primeira Matriz\n"​);​
 +   for (i=0; i < 5; i++)
 +   {
 +      printf("​%d ", iVetor[i]); /* ...mas deve-se tomar cuidado na hora de manipular ao vetor, pois caso o programa “tente” acessar um 
 +                                   ​índice que não existe, o resultado será indesejado. */
 +   }
 +   ​printf("​\n\n"​);​
 +
 +   ​return;​
 +}
 +
 +void imprime_2(int iMatriz[][3]) /* Para a primeira dimensão, não é necessário informar a quantidade de índices. Mas para a demais é necessário. */
 +{
 +   int i,j;
 +   ​printf("​Segunda Matriz\n"​);​
 +   for (i=0; i < 3; i++)
 +   {
 +      for (j=0; j < 3; j++)
 +      {
 +         ​printf("​%d ", iMatriz[i][j]);​
 +      }
 +      printf("​\n"​);​
 +   }
 +   ​return;​
 +}
 +
 +int main(void)
 +{
 +   int iVetor[5] = {1, 2, 3, 4, 5};
 +   int iMatriz[3][3] = {{11, 12, 13},
 +                        {21, 22, 23},
 +                        {31, 32, 33}};
 +
 +   ​imprime_1(iVetor);​
 +   ​imprime_2(iMatriz);​
 +
 +   ​return 0;
 +}
 +</​code>​
 +
 + --- //​[[marcos@laureano.eti.br|Marcos Laureano]] 2008/05/15 16:34//
vetor_matriz.1210890193.txt.gz · Última modificação: d/mY H:i por laureano
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0