Divagações...

quarta-feira, 24 de fevereiro de 2010

Algoritmo - Vetores e matrizes

Para facilitar a manipulação de muitos dados ao mesmo tempo uma estrutura de dados homogênea é disponibilizada. Para tais implementações usa-se vetores e matrizes.
Vetores são posições contíguas de memória onde o armazenamento é realizado de modo sequencial. Já as matrizes são coleções de dados que podem conter mais de uma dimensão, matrizes planas, que são representadas por linhas e colunas (as mesmas usadas em matemática) e matrizes de duas ou mais dimensões. Tente usar seu poder de abstração para visualizar uma matriz e enxergá-la como um cruzamento de linhas e colunas, onde cada célula representa uma porção de memoria para armazenar um dado elemento.
Todos os tipos de dados apresentados nos posts anteriores são suportados por vetores e matrizes, os quais podem ser de inteiros, reais ou caracteres (chamados usualmente de strings).

Para ilustrar melhor como funcionam tais estruturas segue abaixo suas construções:

declare soma[10]: inteiro;
declare media[100] : real;
declare nomes[20][100] : caracter;

Representação do vetor soma[10]:
Esta é a maneira como o computador armazena vetores na memória RAM. As posições representas de E1 até E10 são os elementos propriamente ditos e sua referência é feita por meio dos indices, os quais são numerados de 1 a 10 trazendo a tona o elemento em sua localização.

Em pormenores, a memória principal do computador implementa o vetor como uma sequência de células que são referenciadas pelo seu endereço. O endereço de uma célula é o modo como o computador sabe a localização de um elemento em um vetor ou matriz. Para acessarmos um determinado elemento usamos índices, que varrem as posições do primeiro elemento até o último.

Os tipos dos vetores soma[10] e media[100] definidos acima indicam quais as operações são permitidas serem efetuadas com os valores e a faixa de precisão que o tipo admite. Já na declaração nomes[20][100] podemos guardar 20 nomes de tamanho 100, isto é, representa uma matriz de 20 linhas, as quais possuem 100 colunas; podendo ser armazenado em cada linha um nome de no máximo 100 caracteres.

Para a escrita e saída dos dados e manipulação dos mesmos, as seguintes operações
são necessárias:

Leitura/Escrita de vetores:

para i=1 ate 10 passo 1 faça
leia soma[i]; //lê o valor e guarda o elemento na posição i
escreva "Valor contido em: ", soma[i];
fim-para

Leitura/Escrita de matrizes:

para i=1 ate 20 passo 1 faça
para j=1 ate 100 passo 1 faça
leia nomes[i][j];
fim-para
fim-para

Para a inserção de dados em uma matriz foi preciso dois índices, pois é necessário controlar suas linhas e colunas. A referencia as linhas é efetuada por meio do índice i, já as colunas é por intermédio do índice j.

Qualquer duvida sobre como implementar ou operar sobre as estruturas homegeneas de dados deixe seu comentário e quando possível responderei.

2 comentários:

  1. Me ajudou muito..obrigada faltou registros

    ResponderExcluir
  2. luana, escrevi um topico dedicado a registros, procure no blog, e obrigado por sua visita ;D

    ResponderExcluir