Baixe o app para aproveitar ainda mais
Prévia do material em texto
Professor: Leonardo Pereira de Sousa Algoritmos e Programação I UNIVERSIDADE FEDERAL DO PIAUÍ – UFPI Campus Picos REGISTROS AULA 16 Conceito • Um registro (record) é uma coleção de várias variáveis, possivelmente de tipos diferentes (estrutura heterogênea de dados), e logicamente relacionadas. • Os elementos de um registro são chamados de campos. • Exemplos: – Funcionário de uma empresa • Nome, cargo, salário – Aluno universitário • Matrícula, nome, curso – Endereço • CEP, logradouro, numero, bairro, cidade Declaração de Tipos de Registros • Na linguagem C, registros são conhecidos como structs (abreviatura de structures). A declaração de um registro é a declaração de um tipo personalizado que será utilizado por uma variável. struct nome_do_tipo{ <tipo> <variável>; <tipo> <variável>; ... }; struct funcionario{ char nome[80]; char cargo[10]; float salario; }; Nome do tipo do registro. Tipo primitivo (int, float, ...) do campo do registro. Nome da variável do campo do registro. Estrutura Básica Exemplo Variáveis de Tipos de Registros • Após o tipo de um registro ser declarado, devemos declarar variáveis para o tipo criado. • O acesso ao campo de um registro é feito a utilizando a sintaxe: <nome_da_variável>.<nome_do_campo>. struct funcionario{ char nome[80]; char cargo[10]; float salario; }; struct funcionario func01, func02; func02.nome = « Leonardo Sousa "; func02.cargo = "professor"; func02.salario = 2000,00; ... Exemplo #include <stdio.h> #include <string.h> struct funcionario{ char nome[80]; char cargo[10]; float salario; }; int main(){ struct funcionario func; strcpy(func.nome, “Leonardo Sousa"); strcpy(func.cargo, "professor"); func.salario = 2000.00; printf("Nome=%s, cargo=%s, salario=%.2f", func.nome, func.cargo, func.salario); return 0; } Prática em Sala • Fazer um registro para endereço completo, com: CEP, logradouro, número, complemento, bairro, cidade e estado. Prática • Fazer um registro para número de telefone, com: tipo (fixo ou celular), DDD, número, operadora. • Fazer um registro cuja representação gráfica é dada a seguir: VETOR DE STRUCT Vetor de Struct • O uso mais comum de struct é em vetores • Para declarar um vetor de struct – Define-se a struct – Declara-se o vetor do tipo struct criado • Exemplo: – struct aluno Turma380[28]; – struct endereco vetorEndAmigos[100]; Vetor de Struct • Para manipular os dados do vetor, devem ser fornecidos o índice e o campo • Exemplo – strcpy(Turma380[0].nome, “Fulano”); – Turma380[0].P1 = 9.5; – Turma380[0].P2 = 8.5; – Turma380[0].T = 9.0; – Turma380[0].faltas = 4; – strcpy(vetorEndAmigos[0].rua, “Carlos Gomes”); – strcpy(vetorEndAmigos[1].rua, “Gorete”); Vetor de Struct #include <stdio.h> #include <string.h> struct funcionario{ char nome[80]; char cargo[10]; float salario; }; int main(){ Struct funcionario lista[10]; int i; for(int i=0; i<10; i++){ gets(lista[i].nome); gets(lista[i].cargo); scanf("%f", &lista[i].salario); } return 0; } Prática em Sala • Criar uma estrutura chamada DadosAluno, que armazena a média e idade de um aluno. • Na função main: criar uma variável que é um vetor da estrutura DadosAluno. • O programa deve obter a média e a idade de 10 alunos. Depois, estes dados devem ser exibidos. Exercício • Fazer um programa que cria uma estrutura livro, que contém os elementos título, ano de edição, número de páginas e preço. Criar uma variável desta estrutura que é um vetor de 5 elementos. Ler os valores para a estrutura e imprimir a média do número de páginas do livros. • Foi realizada uma pesquisa entre 500 habitantes de uma certa região. De cada habitante foram coletados os dados: idade, sexo, salário e número de filhos. Crie a estrutura de dados adequada para armazenar estas informações, ao final calculo e exiba a média salarial dos habitantes. FIM
Compartilhar