Quando se lida com dados, surge por vezes a necessidade de os manipular agrupados em elementos de tipos diversificados.Por exemplo quando se pretende armazenar dados sobre uma pessoa, podem ser utilizados campos como nome(texto), idade(inteiro) e muitos outros.
Quando o programador se encontra perante a necessidade de armazenar dados desta natureza pode recorrer às estruturas.
Vou apenas referir-me a Estruturas de Dados para já.
Uma estrutura de dados consiste num grupo de elementos de dados agrupadas sob uma designação ou nome. Estes elementos de dados, cuja designação técnica é membros ( members), podem assumir tipos e tamanhos distintos. As estruturas de dados são declaradas em C++ utilizando a seguinte sintaxe:
struct nome_da_estrutura {
membro_do_tipo_a nome_do_membro_1;
membro_do_tipo_b nome_do_membro_2;
membro_do_tipo_c nome_do_membro_3;
. . .
membro_do_tipo_z nome_do_membro_n;
} nome_do_objecto;
Onde…
struct nome_da_estrutura é o nome a dar a um tipo de estrutura
nome_do_objecto pode ser um conjunto de identificadores de objectos cujo tipo é a estrutura em questão
Entre chavetas { } encontra-se a lista dos membros da estrutura, sendo cada um deles especificado por um tipo e um identificador que o representa.
A primeira coisa que temos que entender é que uma estrutura de dados dá origem a um novo tipo de dados: Uma vez declarada uma estrutura de dados, um novo tipo de dados é criado com o identificador especificado em nome_da_estrutura, podendo este ser utilizado no programa como se de qualquer tipo de dados se tratasse.
Por exemplo:
struct produto { int peso; float custo; } ; produto laranja; produto banana, morango;
Nestas linha foi declarada um tipo de estrutura denominada produto contendo os membros peso e custo, cada um de tipo elementar distinto.
De seguida é utilizado o nome da estrutura de dados (produto) para declarar três objectos: laranja, banana e morango.
Uma vez declarado, produto tornou-se num novo nome que, tal como os tipos elementares int, char, float e double, pode a partir deste ponto ser utilizado para declarar objectos(variáveis) deste novo tipo de dados composto.
Os objectos podem ser criado ao mesmo tempo que se define a estrutura, tal como mostra o exemplo seguinte:
struct produto { int peso; float custo; } laranja, banana, morango;
É muito importante distinguir claramente o nome do tipo de estrutura de um objecto a ela associado.
Podemos instanciar muitos objectos (p.e. variáveis como laranja, banana e morango) a partir de um único tipo de estrutura(produto).
Uma dez declarados os três objectos laranja, banana e morango, podemos trabalhar directamente com os seus membros, bastando para o efeito utilizar um ponto (.) a separar o nome do objecto do nome do membro.
No nosso exemplo teríamos:
laranja.peso;
laranja.custo;
banana.peso;
banana.custo;
morango.peso;
morango.custo;
Cada um deles é do tipo de ados associado ao membro a que se refere, ou seja, laranja.peso, banana.peso e morango.peso são do tipo inteiro. Já laranja.custo, banana.custo e morango.custo corresponde a valores reais.
O exemplo seguinte tenta ilustrar a utilização de estruturas a partir de um conjunto de figuras geométricas designadas de paralelogramos.
A figura contextualiza o tipo de figuras de que estamos a falar.
Como facilmente se pode verificar, se num quadrilátero todos os lados opostos forem iguais e paralelos, trata-se de um Paralelogramo.
Sem complicar o assunto que nos trouxe até aqui, importa reter que para armazenar os dados relativos a uma paralelogramo basta utilizar dois valores. Vamos utilizar os nomes lado1 e lado2, vulgarmente designados de comprimento e largura, embora não esteja totalmente correcto.
O programa seguinte permite calcular a área de um quadrilátero a partir destes dois valores.
( Foi utilizado o formato pdf para tentar garantir o estilo de programação utilizado )
Este artigo foi inspirado e parcialmente traduzido num outro que encontrei em http://www.cplusplus.com/doc/tutorial/structures.html
Setembro 15, 2009 ás 7:57 pm
GRacias amigo Coridial saludo desde colombia.