Essa é uma revisão anterior do documento!


Vetores e Matrizes

Definindo Vetores

Sintaxe:

tipo_variável nome_vetor[tamanho];


Define-se como vetor uma variável que possui várias ocorrências de um mesmo tipo. Cada ocorrência é acessada através de um índice. Os vetores também são chamados de matrizes unidimensionais por possuírem somente um índice.

Para definir um vetor em C deve-se indicar a quantidade de ocorrência que o mesmo irá ter colocando na sua definição o valor entre [ ].

Os índices de um vetor em C irão sempre começar de zero, fato que deve ser lembrado pois geralmente este detalhe é um grande causador de problemas. Portanto, para se acessar a primeira ocorrência de um vetor deve-se indicar o índice zero.

/* programa vetor_matriz_1.c */
 
#include <stdio.h>
#define TAMANHO    5
 
int main (void)
{
   int i;
   int iValor_a;
   int iSoma;
   int iVetor [TAMANHO];
 
   for (i=0; i < TAMANHO; i++) /* na linguagem C, um vetor sempre começa em zero */
   {
      printf ("Entre com o valor %d:", i + 1);
      scanf ("%d", &iValor_a);
      iVetor [i] = iValor_a;
   }
 
   iSoma = 0;
 
   for (i=0; i < TAMANHO; i++)
   {
      iSoma += iVetor[i];
   }
   printf("Media : %f\n", iSoma / (TAMANHO * 1.0)); /* a multiplicação é uma forma de converter a divisão por inteiro para divisão real */
 
   return 0;
}

Definindo Matrizes

Sintaxe:

tipo_variável nome_matriz[quantidade_linhas][quantidade_colunas];


Para se definir matrizes basta adicionar mais uma dimensão na definição da variável. Por compatibilidade com a matemática a primeira dimensão é chamada de linha e a segunda de colunas.

Para se acessar um item de uma matriz deve-se indicar os dois índices.

Veja o exemplo:

/* programa vetor_matriz_2.c */
 
#include <stdio.h>
#define TAMANHO    2
 
int main(void)
{
   int i,j;
   int iDeterminante;
   int iValor_a;
   int iMatriz [TAMANHO][TAMANHO];
 
   for(i=0; i < TAMANHO; i++)
   {
      for(j=0; j < TAMANHO; j++)
      {
         printf ("Entre item %d %d:", i + 1, j + 1);
         scanf ("%d", &iValor_a);
         iMatriz [i][j] = iValor_a;
      }
   }
   iDeterminante = iMatriz[0][0] * iMatriz [1][1] -
                   iMatriz[0][1] * iMatriz [1][0];
 
   printf ("Determinante : %d\n", iDeterminante);
   return 0;
}

Matrizes n-Dimensionais

Sintaxe: tipo_variável nome_matriz[dimensão_1][dimensão_2][dimensão_3][dimensão_4];


O conceito de dimensão pode ser estendido para mais de duas dimensões, criando-se matrizes n-dimensionais. Apesar de terem pouco uso prático deve-se lembrar que sempre cada dimensão definida irá ter o índice começando de zero e terminando em uma unidade antes do tamanho especificado para aquela dimensão.

Veja o exemplo:

/* programa vetor_iMatriz_3.c */
 
#include <stdio.h>
#define DIMENSAO_1    2
#define DIMENSAO_2    5
#define DIMENSAO_3    3
#define DIMENSAO_4    4
 
int main (void)
{
   int i,j,k,l;
   int iMatriz[DIMENSAO_1][DIMENSAO_2][DIMENSAO_3][DIMENSAO_4];
 
   /* Codigo para zerar uma iMatriz de 4 dimensoes */
   for (i=0; i < DIMENSAO_1; i++)
   {
      for (j=0; j < DIMENSAO_2; j++)
      {
         for (k=0; k < DIMENSAO_3; k++)
         {
            for (l=0; l < DIMENSAO_4; l++)
            {
               iMatriz [i][j][k][l] = i+j+k+l;
            }
         }
      }
   }
 
   /* Uma regra que pode-se sempre levar sempre em consideração: para cada dimensão de uma matriz, sempre haverá um laço (normalmente um for). 
      Se houver 4 dimensões, então haverá 4 laços.  */
   for (i=0; i < DIMENSAO_1; i++)
   {
      for (j=0; j < DIMENSAO_2; j++)
      {
         for (k=0; k < DIMENSAO_3; k++)
         {
            for (l=0; l < DIMENSAO_4; l++)
            {
               printf("\nValor para iMatriz em [%d] [%d] [%d] [%d] = %d", i,j,k,l, iMatriz[i][j][k][l]);
            }
         }
      }
   }
 
  return 0;
}
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