Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Estruturada II Aula 6 – Estruturas e Union. Prof: Efrem Lousada efrem.lousada@anhanguera.com plainit.co/u/efrem Sumário Prof: Efrem Lousada 2 1. Conceito de struct 2. Sintaxe em C 3. Vetor de struct 4. Exercícios Conceito de struct Prof: Efrem Lousada 3 Vetores e matrizes • Estruturas de dados homogêneas • Armazenam vários valores, mas todos de um mesmo tipo (todos int, todos double, todos float, todos char) Problemas reais • Temos coleções de dados que são de tipos diferentes • Exemplo: ficha de um cadastro de cliente – Nome: string – Endereço: string – Telefone: string – Salário: float – Idade: int Conceito de struct Prof: Efrem Lousada 4 Registro (ou struct) • Tipo de dado estruturado heterogêneo – Coleção de variáveis referenciadas sobre um mesmo nome • Permite agrupar dados de diferentes tipos numa mesma estrutura (ao contrário de matrizes que possuem elementos de um mesmo tipo) – Cada componente de um registro pode ser de um tipo diferente (int, char, ...) – Estes componentes são referenciados por um nome Conceito de struct Prof: Efrem Lousada 5 Registro (ou struct) • Os elementos do registro – São chamados de campos ou membros da struct • É utilizado para armazenar informações de um mesmo objeto – Exemplos: carro cor, marca, ano, placa, chassi pessoa nome, idade, endereço Conceito de struct Prof: Efrem Lousada 6 Campo (Field) • Conjunto de caracteres com o mesmo significado • Exemplo: nome Registro (Record) • Conjunto de campos relacionados • Exemplo: nome, endereço, telefone, salário e idade de uma pessoa Sintaxe na Linguagem C Prof: Efrem Lousada 7 A palavra reservada struct indica ao compilador que está sendo criada uma estrutura Uma estrutura deve ser declarada após incluir as bibliotecas e antes do main struct nome_estrutura { tipo nome_da_variável; tipo nome_da_variável; elem. da estrutura .... } variáveis da estrutura; Sintaxe na Linguagem C Prof: Efrem Lousada 8 Por exemplo um struct endereço que guarda os elementos nome, rua, cidade, estado e cep: struct endereco { char nome[30]; char rua[40]; long int cep; }; Foi feita apenas a declaração da struct, ainda não foi criada nenhuma variável da struct endereço O comando para declarar uma variável com esta struct é: struct endereco info_end; Sintaxe na Linguagem C 9 Para acessar os campos da struct • Utiliza-se o nome da variável struct, seguido de ponto,seguido do nome do campo • Por exemplo: info_end.cep = 2; Se o compilador C for compatível com o padrão C ANSI – Informação contida em uma struct pode ser atribuída a outra struct do mesmo tipo – Não é necessário atribuir os valores de todos os elementos/campos separadamente . Por exemplo: info_end = info_end2; – Todos os campos de info_end receberão os valores correspondentes dos campos info_end2 struct endereco { char nome[30]; char rua[40]; long int cep; }info_end, info_end2; Sintaxe na Linguagem C Prof: Efrem Lousada 10 Exemplo struct aluno { char nome[40]; float P1; float P2; float T; int faltas; }; main() { struct aluno joao, maria; joao.P1 = 9.5; joao.P2 = 8.5; joao.T = 9.0; joao.faltas = 4; maria = joao; } Vetor de struct Prof: Efrem Lousada 11 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 Prof: Efrem Lousada 12 Para manipular os dados do vetor, devem ser fornecidos o índice e o campo Exemplos: 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, “Goethe”); Vetor de struct Prof: Efrem Lousada 13 Exemplo: struct endereco{ char nome[30]; char rua[40]; char cidade[20]; char estado[3]; long int cep; }; main() { struct endereco info_end[100]; // Imprime todos os nomes do vetor for(int i = 0; i < 100; i++) printf(“%s”, info_end[i].nome); } Exercícios Prof: Efrem Lousada 14 1) Criar uma estrutura chamada DadosAluno, que armazena a média e idade de um aluno. Na função main: criar uma variável que é uma estrutura DadosAluno; ler a média e a idade de um aluno e armazenar na variável criada; exibir na tela a média e a idade do aluno. 2) Considerando o exercício 1, 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ícios Prof: Efrem Lousada 15 3) 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. 4) 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 e faça uma função que armazene as informações digitadas pelo usuário na estrutura de dados criada. Faça também uma função que calcula a média do salário dos habitantes. Fim, Obrigado! Prof: Efrem Lousada 16
Compartilhar