Escolar Documentos
Profissional Documentos
Cultura Documentos
Registros
(Structs)
– Manipulação
– Registros Aninhados
– 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:
Exemplo:
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:
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
– 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
– 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
– 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;
Exercício resolvido:
– Ideia básica do algoritmo:
• 1) Definir o registro;
• 2) Declarar as variáveis;
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
– 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;