Curso de Programação em C++
Universidade Federal do Ceará
Departamento de Engenharia Estrutural e
Construção Civil
Prof: Evandro Parente Junior
Monitor: Renato Peixoto
Maio/2007
Estruturas
Estruturas:
São utilizadas para armazenar dados
heterogêneos (tipos diferentes).
Ex: dados de um aluno
Nome (string)
Matrícula (inteiro)
Data de nascimento (dd/mm/aaaa => 3 inteiros)
Curso (inteiro ou string)
IRA (real).
Vetores e matrizes:
Armazenam um conjunto de dados do mesmo tipo
(dados homogêneos).
2
Estruturas
Definição:
struct DadosAluno{
char Nome[200];
int Matricula;
int DiaNasc;
int MesNasc;
int AnoNasc;
int Curso; // Codigo do curso
double IRA // Indice de rendimento academico
};
Declaração de variáveis:
struct DadosAluno aluno;
struct DadosAluno vet_aluno[1000];
struct DadosAluno *ptr_aluno;
3
Estruturas
Acesso aos dados:
Através do nome da variável e do nome do campo.
Exemplos:
cout << aluno.Matricula;
cout << vet_aluno[i].Matricula;
cout << ptr_aluno->Matricula;
Importante:
Utiliza-se “.” nas variáveis comuns.
Utiliza-se “->” nas variáveis tipo ponteiro.
Vetores alocados dinamicamente são tratados como
variáveis comuns após a alocação.
4
Estruturas
Tipos Abstratos de Dados (TAD):
Verifica-se que as estruturas podem ser encaradas
como novos tipos definidos pelo programa.
Além dos dados contidos na estrutura é possível definir
funções que atuem sobre estes dados.
Estas funções definem o comportamento dos tipos
criados.
Este mecanismo permite criar novos tipos além dos
básicos definidos pela linguagem:
char, int, bool, float, double, ...
5
Tipos Abstratos de Dados
Tipo Abstrato de Dados ou Tipo Definido pelo Usuário:
Nomes utilizados para descrever os novos tipos de dados criados em
um programa.
Mecanismos de definição:
Estruturas (struct).
Enumerados (enum).
Uniões (union): pouco utilizado.
Enumerados:
Utilizados para definir os valores possíveis de uma variável
(inteira):
enum _eResultado{VITORIA, EMPATE, DERROTA};
enum _eResultado jogo;
if (jogo == VITORIA) cout << “Ganhamos!”;
6
Tipos Abstratos de Dados
Comando typedef:
Formaliza a definição de novos tipos:
typedef struct {int dia,mes,ano;} sData;
typedef enum _eResultado eResultado;
Define um nome para o tipo criado.
Pode ser utilizado para renomear tipos
existentes:
typedef float Real; // usar double se necessario!
Real x[100];
7