Baixe o app para aproveitar ainda mais
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
Compartilhar