UNIVERSIDADE FEDERAL DE
UBERLÂNDIA
ENGENHARIA CIVIL
TIPOS ESTRUTURADOS DE
DADOS
Professora: Fabíola Gonçalves.
AGENDA
Estrutura de Dados Heterogênea





Sintaxe
Acesso as variáveis
Atribuição de Valores
Array de Estruturas
Atribuição entre Estruturas
2

ESTRUTURA DE DADOS HETEROGÊNEA

As variáveis vistas até agora eram:

É possível que se criem novas estruturas a partir dos
tipos básicos.
3
Simples: definidas por tipo int, real e char;
 Compostas homogêneas: definidas por array;

ESTRUTURA DE DADOS HETEROGÊNEA
Estrutura:
 Estrutura suporta K variáveis, cada qual com um tipo
de dado próprio;
 Sintaxe:

4
estrutura nomestruct{
tipo1 campo1;
tipo2 campo2;
...
tipon campon;
};
ESTRUTURA DE DADOS HETEROGÊNEA
Estrutura

Ex.:
5

estrutura cadastro {
char nome[100];
int idade;
char rua[50];
int numero;
};
char nome[100];
int idade;
char rua[50];
int numero;
cadastro
ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA - DECLARAÇÃO


estrutura cadastro c;
Palavra
Estrutura
reservada Já definida

Nome variável
Obs: por ser um tipo definido pelo programador, usase a palavra estrutura antes do tipo da nova
variável.
6
Uma vez definida a estrutura, uma variável pode ser
declarada de modo similar aos tipos já existente:
ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA
7
O uso de estruturas facilita na manipulação dos dados do
programa;
 Imagine ter que declarar 4 cadastros, para 4
diferentes pessoas:

char nome1[100], nome2[100], nome3[100], nome4[100];
int idade1, idade2, idade3, idade4;
char rua1[50], rua2[50], rua3[50], rua4[50];
int numero1, numero2, numero3, numero4;
ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA
Utilizando uma estrutura, o mesmo pode ser feito
da seguinte maneira:

estrutura cadastro p1, p2, p3, p4, p5;
8

ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA

Exercício:
Declare uma estrutura capaz de armazenar o número
de um aluno e 3 notas para um dado aluno.
9

ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA

Exercício:
Declare uma estrutura capaz de armazenar o número
e 3 notas para um dado aluno.
estrutura aluno {
int num_aluno;
int nota1, nota2, nota3;
};
10

ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA – ACESSO ÀS VARIÁVEIS

Como é feito o acesso às variáveis da estrutura?
11

Cada variável da estrutura pode ser acessada com o operador
“.”.
Sintaxe: nomeEstrutura.nomeVariavel
 Ex.:
copiar(c.nome,"João");
c.idade = 18;
copiar(c.rua,"Avenida Brasil");
c.numero = 1082;

ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA – ACESSO ÀS VARIÁVEIS

12
Como nos arrays, uma estrutura pode ser previamente
inicializada:
estrutura ponto {
int x;
int y;
};
estrutura ponto p1 = { 220, 110 };
Permite inicializar as variáveis
da estrutura.
ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA – ACESSO ÀS VARIÁVEIS
E se quiséssemos ler os valores das variáveis da
estrutura do teclado?

Resposta:
basta
ler
cada
variável
independentemente, respeitando seus tipos.
EX:
leia(c.nome);
escreva(c.idade);
leia(c.rua);
escreva(c.numero);
13

ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA – ACESSO ÀS VARIÁVEIS

Assim:
 Uma estrutura pode ser vista como um simples
agrupamento de dados.

14
Note que cada variável dentro da estrutura pode
ser acessada como se apenas ela existisse, não
sofrendo nenhuma interferência das outras.
ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA
Voltando ao exemplo anterior, se, ao invés de 5
cadastros, quisermos fazer n cadastros?
15

ESTRUTURA DE DADOS HETEROGÊNEA
ARRAY DE ESTRUTURA
estrutura cadastro c[100];
 Desse modo, declara-se um array de 100 cadastros.

16
SOLUÇÃO: criar um array de estruturas;
 Sua declaração é similar a declaração de uma array
de um tipo básico:

ESTRUTURA DE DADOS HETEROGÊNEA
ARRAY DE ESTRUTURA
 Lembrando:
17

estrutura: define um “conjunto” de variáveis
que podem ser de tipos diferentes;

array: é uma “lista” de elementos de mesmo
tipo.

Como assim?
ESTRUTURA DE DADOS HETEROGÊNEA
ARRAY DE ESTRUTURA

Exercício:
18

Utilizando a estrutura do exercício anterior, faça um
programa para ler o número e as 3 notas de 10 alunos.
ESTRUTURA DE DADOS HETEROGÊNEA
ARRAY DE ESTRUTURA

Exercício:

estrutura aluno {
int num_aluno;
int nota1, nota2, nota3;
};
estrutura aluno a[10];
int i;
para i de 1 até 10 faça
leia(a[i].num_aluno);
leia(a[i].nota1);
leia(a[i].nota2);
leia(a[i].nota3);
fim para
19
Utilizando a estrutura do exercício anterior, faça um
programa para ler o número e as 3 notas de 10 alunos.
ESTRUTURA DE DADOS HETEROGÊNEA
ATRIBUIÇÃO ENTRE ESTRUTURAS

Ex.:
estrutura cadastro c1,c2;
 c1 = c2; //CORRETO


Ex:
estrutura cadastro c1;
 estrutura ficha c2;
 c1 = c2; //ERRADO!! TIPOS DIFERENTES

20

Atribuições entre estruturas só podem ser feitas
quando os campos são IGUAIS!
ESTRUTURA DE DADOS HETEROGÊNEA
ATRIBUIÇÃO ENTRE ESTRUTURAS
No caso de estarmos trabalhando com arrays, a
atribuição entre diferentes elementos do array
também é válida;
 Ex:



estrutura cadastro c[10];
c[1] = c[2]; //CORRETO
Note que nesse caso, os tipos dos diferentes elementos
do array são sempre IGUAIS.
21

ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA DE ESTRUTURAS

estrutura endereco{
char rua[50]
int numero;
};
estrutura cadastro{
char nome[50];
int idade;
estrutura endereco ender;
};
22
Sendo uma estrutura um tipo de dado, podemos
declarar uma estrutura que utilize outra estrutura
previamente definida:
ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA DE ESTRUTURAS

estrutura cadastro c;
copia(c.nome,"João");
c.idade = 18;
copia(c.ender.rua,"Avenida Brasil");
c.ender.numero = 1082;
23
Nesse caso, o acesso aos dados do endereço do
cadastro é feito utilizando novamente o operador “.”;
ESTRUTURA DE DADOS HETEROGÊNEA
ESTRUTURA DE ESTRUTURAS

Inicialização de uma estrutura de estruturas:
estrutura reta {
estrutura ponto inicio, fim;
};
estrutura reta r = {{10,20},{30,40}};
24
estrutura ponto {
int x, y;
};
REFERÊNCIAS

Martins, L. G. A., Silva, A. J. Introdução à
Algoritmos. Apostila da FACOM-UFU.
25

Adaptada da apresentação de André Backes;
Download

estrutura - Facom - Universidade Federal de Uberlândia