Buscar

Aula09 - Registros - Structs

Prévia do material em texto

Algoritmos e Programação
Aula 9
Registros/Structs
Prof. Mairon de Araújo Belchior
mairon.belchior@inf.ufpel.edu.br
Introdução
• Tipos de variáveis
• Tipos básicos
• char, int, float, double e void
• Variáveis compostas homogêneos
• Vetores
• Matrizes
• Variáveis compostas heterogêneas
• Registros
2
Introdução (2)
• Vimos que as variáveis vetores e matrizes são capazes de
armazenar um conjunto de elementos de um mesmo tipo
• No entanto em alguns problemas há necessidade de definirmos
conjuntos onde os elementos não sejam do mesmo tipo
3
Introdução (3)
• Um típico exemplo seria a utilização do conjunto de informações
que caracterizam um aluno:
• Código (Inteiro)
• Nome (String)
• CPF (Inteiro)
• RG (Inteiro)
• Data de nascimento (String / Numérico)
• Endereço (String)
• Média (Float)
• etc...
4
Variáveis Compostas Heterogêneas – Registros
• Se tivermos que gerenciar uma grande quantidade de alunos, com
as estruturas de dados que conhecemos até agora, não seria muito
fácil armazenar tais informações
• O conceito de registro visa facilitar o agrupamento de informações
que não são do mesmo tipo, mas que guardam estreita relação
lógica
• Um registros é uma coleção de dados relacionados que podem ser de
mesmo tipo ou tipos diferentes
• Um registro em C é chamado de struct
• A declaração de um registro cria um novo tipo de dado
5
Declaração do registro
• Forma geral
struct nome_struct{
tipo1 campo1;
tipo2 campo2;
...
tipon campoN;
};
• Cada campo do registro é uma variável
6
Declaração do registro (2)
• Exemplo
struct Cadastro {
char nome[50];
int idade;
char rua[50];
int numero;
};
• Cada campo do registro é definido da mesma forma que uma variável
7
Declaração do registro (3)
• Exemplo (2)
struct Data {
int dia;
int mês;
int ano;
};
8
Declaração do registro (4)
• Exemplo (3)
struct Aluno {
int id, idade;
char genero, nome[50];
};
struct InfoAluno {
char dept[30];
char curso[30];
char lab[30];
float notas[5];
};
9
Declarando uma variável do tipo do registro
• Forma geral
• struct nome_struct nome_variável;
• Exemplo
• struct Cadastro c1;
• struct Aluno aluno1, aluno2;
• struct Data data1, data2;
10
Declarando uma variável do tipo do registro (2)
• Variáveis podem ser declaradas juntamente com a definição do
registro
• Exemplo
struct Aluno {
int id, idade;
char genero, nome[50];
} aluno1, aluno2; // Define o registro Aluno e declara as variáveis aluno1 e
// aluno2 do tipo registro Aluno.
11
Acessando os campos de um registro
• Cada campo (variável) de uma struct pode ser acessado utilizando
o operador ponto “.”
• Forma geral
• nome_variável_struct.nome_campo;
12
Acessando os campos de um registro (2)
• Exemplo
13
Acessando os campos de um registro (3)
• Exemplo (2)
14
Acessando os campos de um registro (4)
• Exemplo (3)
15
Inicialização de registros na declaração da variável 
do tipo do registro
• Usa-se chaves assim como nos arrays
• Exemplo
• Elementos omitidos durante a inicialização são inicializados com 0. Se for uma
string, será inicializada com uma string vazia (“”).
16
Vetores de Registros
• A declaração de um vetores de struct é similar à declaração de
vetores de outros tipos.
• Exemplo
• struct Aluno alunos[5]; // Declara um vetor chamado alunos de tamanho
// 5, onde cada posição do vetor é um struct
// do tipo Aluno.
17
Vetores de Registros (2)
• Exemplo
18
Atribuição entre duas variáveis do tipo struct
• Os valores contidos em uma variável do tipo struct podem ser
atribuídos (copiados) para outra variável do mesmo tipo.
19
Atribuição entre duas variáveis do tipo struct (2)
• Exemplo
20
Registros aninhados – Struct dentro de Struct
• Campos de uma struct podem ser outras structs.
21
Registros aninhados – Struct dentro de Struct (2)
• Exemplo
22
Exercícios
Ex1. Crie um registro para armazenar informações de um jogador de
futebol contendo:
• Nome;
• Idade;
• Número de Jogos;
• Número de Gols.
Escreva um programa que obtenha os dados de cinco jogadores de
um time de futsal (utilize um vetor de registros). Por fim imprima na
tela o nome e a média de gols de cada jogador.
23
Exercícios (2)
Ex2. Crie uma struct para armazenar os dados de um cliente de
banco, a struct deve conter os seguintes campos:
• Nome do Cliente;
• Aniversário;
• Gênero;
• RG;
• CPF.
24
Exercícios (3)
Ex3. Crie uma struct para armazenar informações de uma conta
bancária, a struct deve conter os seguintes campos:
• Titular da Conta;
• Número da Conta;
• Agência;
• Saldo;
• Dias no Cheque Especial.
OBS: Utilize a struct definida no exercício anterior para armazenar
as informações do Titular da Conta.
25
Exercícios (4)
Ex4. Escreva um programa que leia do teclado as informações
necessárias para criar uma conta bancaria de acordo com as structs
definidas nos exercícios 2 e 3. Após preencher os campos, o
programa deve imprimir os dados na tela.
26
Referências
• Material de Bruno Zatt.
• BACKES, André. Linguagem C: completa e descomplicada. Elsevier,
2013.
27
Algoritmos e Programação
Aula 9
Registros/Structs
Prof. Mairon de Araújo Belchior
mairon.belchior@inf.ufpel.edu.br

Continue navegando