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_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.

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

Uma Resposta para “Estruturas de Dados (struct) – C++”

  1. wilson Diz:

    GRacias amigo Coridial saludo desde colombia.


Deixar uma Resposta