Você está na página 1de 40

Faculdades Cearenses

ADS – Estruturas de Dados 1

Registros
(Structs)

Prof. Henrique Neto


AGENDA

Registros
– Definição/Declaração

– Manipulação

– Registros Aninhados

– Registros com vetor

– Vetor de Registros
Estruturas Heterogêneas


Até o momento, vimos estruturas de dados homogêneas:
– Vetores;
– Matrizes;
– Strings;


Nessas estruturas, todos os elementos da estrutura são do
mesmo tipo e de tipos primitivos:
– inteiro, real e caractere;
Estruturas Heterogêneas


No entanto, em muitos casos, é necessário armazenar
conjuntos de informações relacionadas que são formadas
por diferentes tipos de dados primitivos;


Exemplos:
– Endereço;
– Fichas com dados pessoais de um cliente;
– Fichas com dados de um produto.
Definição de um Registro


Um registro pode ser definido como uma coleção de uma
ou mais variáveis;


Cada variável pode ser de um tipo diferente;
Definição de um Registro


Sintaxe para definir um registro (struct) no C:
Definição de um Registro

Exemplo: Definição de uma struct chamada Aluno
Definição de um Registro

Exemplo: Declaração de um variável do tipo Aluno
Definição de um Registro


Da mesma forma como ocorre na declaração de tipos
primitivos, a palavra-chave struct deve vir antes do nome
do registro;
Definição de um Registro


Exemplo:

Definição do registro

Declaração de uma
variável do
tipo registro
Outra forma de definição de um Registro


Há outra possibilidade mais simples para declarar
variáveis de um registro;


O comando typedef pode ser usado para dar um novo
nome para algum tipo de dado;


Sintaxe:

typedef <nome_tipo> <nome_tipo_novo>


Outra forma de definição de um Registro


Exemplo:

typedef int Inteiro;


typedef float Real;
typedef char Caractere;

Inteiro valor;
Real x, y, z;
Caractere letra;
Outra forma de definição de um Registro


Exemplo:
typedef para
um tipo inteiro
Outra forma de definição de um Registro


Assim, com o comando typedef pode-se definir registros
e declarar variáveis da seguinte forma:

typedef struct nome_est_antigo nome_est_novo;


Outra forma de definição de um Registro
Outra forma de definição de um Registro

Nome antigo Nome novo

Definição da estrutura

Novo tipo
definido
Outra forma de definição de um Registro

Outra forma
de fazer!
Outra forma de definição de um Registro

A definição de um
registro deve ficar fora
da função principal
(main) e de qualquer
função.

A declaração de uma
variável do tipo registro
deve ficar dentro de
alguma função.
AGENDA

Registros
– Definição/Declaração

– Manipulação

– Registros Aninhados

– Registros com vetor

– Vetor de Registros
Registro: Manipulação


Cada campo de uma estrutura pode armazenar um valor
(como uma variável);


Seu valor pode ser acessado e modificado;


Os campos são acessados usando o operador ponto (.)
entre o nome da variável declarada como registro e o
nome do campo;
Registro: Manipulação


Cada variável p1 e p2 do tipo
Ponto tem campo x e y;


O uso, por exemplo, de p1.x
permite acessar ou modificar o
campo x da variável p1;
Registro: Manipulação


No exemplo são
lidos, matrícula,
nome e curso de
um Aluno;
Exercícios

1) Defina uma estrutura chamada Medidas para representar
o peso e a altura de uma pessoa.


1.1) Em seguida, declare duas variáveis do tipo Medidas
chamadas de joao e maria;


1.2) Escreva as instruções para atribuir:
– 1.78 à altura de joao;
– 1.64 à altura de maria;
– 75 ao peso de joao;
– 59 ao peso de maria;
Exercícios


2) Considerando o exercício anterior, escreva um
conjunto de instruções para imprimir a média das
alturas e a média dos pesos de joão e maria;
AGENDA

Registros
– Definição/Declaração

– Manipulação

– Registros Aninhados

– Registros com vetor

– Vetor de Registros
Estruturas Aninhadas


Um registro pode ter como um de seus campos um outro
registro;

aluno1.nascimento.dia = 23;
Estruturas Aninhadas
aluno1

aluno1.mae.nascimento.ano = 1940
AGENDA

Registros
– Definição/Declaração

– Manipulação

– Registros Aninhados

– Registros com vetor

– Vetor de Registros
Registros com vetor


Em alguns casos, o tipo registro possui vetores como um
de seus campos:


O acesso a estes campos é feito da mesma maneira
como acesso direto a um vetor;
Registros com vetor


Exercício resolvido:
– Considere as informações de um aluno que tem
NOME e 4 notas como campos de um registro;

– Escreva um programa para ler o nome e as notas de


um aluno e logo em seguida imprimir o que foi lido;
Registros com vetor


Exercício resolvido:
– Ideia básica do algoritmo:
• 1) Definir o registro;

• 2) Declarar as variáveis;

• 3) Ler os dados de um aluno;

• 4) Imprimir os dados de um aluno;


Registros com vetor


Exercício resolvido:
– 1) Definir o registro
Registros com vetor


Exercício resolvido:
– 2) Declarar as variáveis
Registros com vetor


Exercício resolvido:
– 3) Lê o nome e
as notas de
um aluno
Registros com vetor


Exercício resolvido:
– 4) Imprimi o
nome e as
notas de um
aluno

Código completo
AGENDA

Registros
– Definição/Declaração

– Manipulação

– Registros Aninhados

– Registros com vetor

– Vetor de Registros
Vetor de Registros


Em alguns casos, é interessante criar um vetor de
registros;
Vetor de Registros


Exemplo: Vetor de
registros para lê
informações de 2
alunos;
Registros com vetor


Exemplo: Vetor de
registros para lê
informações de 20
alunos;
Exercícios


1) Questão: Faça um programa que leia três nomes de
pessoas (de no máximo 50 caracteres) e as idades das
respectivas pessoas e armazene em um vetor de
registros. Em seguida imprima os valores lidos.


2) Questão: Considerando a questão anterior, imprimi os
três nomes armazenados nesse vetor de registros por
ordem crescente de idades;

Você também pode gostar