Estruturas de Dados (struct) – C++

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_objeto;

Onde…

struct nome_da_estrutura é o nome a dar a um tipo de estrutura

nome_do_objeto pode ser um conjunto de identificadores de objetos 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;

Nesta 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 objetos: 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 objetos(variáveis) deste novo tipo de dados composto.

Os objetos podem ser criados 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 objeto a ela associado.

Podemos instanciar muitos objetos (p.e. variáveis como laranja, banana e morango) a partir de um único tipo de estrutura(produto).

Uma vez declarados os três objetos laranja, banana e morango, podemos trabalhar diretamente com os seus membros, bastando para o efeito utilizar um ponto (.) a separar o nome do objeto 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 dados 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.

Classificação de Quadriláteros

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.

Código fonte

( 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

Anúncios

4 thoughts on “Estruturas de Dados (struct) – C++

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s