Baixe o app para aproveitar ainda mais
Prévia do material em texto
Instituto Federal do Sul de Minas Gerais Algoritmos Aula 10 – Estruturas em C douglas.braz@ifsuldeminas.edu.br Variáveis Compostas Heterogêneas • São conjuntos de dados logicamente relacionados, mas de tipos diferentes. ▫ Exemplo: Ficha de um funcionário de uma empresa 22345 Num Joaquim José da Silva Xavier Nome Rua Tiradentes, 1500 – Tiradentes, Minas Gerais Endereço Normal Situação Solteiro Estado Civil 111.111.111-11 CPF R$ 2.000,00 Salário Variáveis Compostas Heterogêneas • São conjuntos de dados logicamente relacionados, mas de tipos diferentes. ▫ Outro funcionário teria uma ficha com os mesmos campos, mas com valores diferentes 10345 Num Pedro Antônio Moreira da Silva Nome Rua Pedro Leopoldo, 1700 – Tiradentes, Minas Gerais Endereço Normal Situação Casado Estado Civil 222.222.222-22 CPF R$ 1.700,00 Salário Variáveis Compostas Heterogêneas • Cada conjunto de informações de um funcionário pode ser referenciado por um mesmo nome, FICHA, por exemplo. • Tais estruturas são chamadas REGISTROS e os seus elementos são denominados CAMPOS ▫ Os REGISTROS agrupam variáveis que não são do mesmo tipo, mas guardam alguma relação lógica. Variáveis Compostas Heterogêneas • Quais os tipos de dados dos campos da FICHA de um funcionário? 10345 Num Pedro Antônio Moreira da Silva Nome Rua Pedro Leopoldo, 1700 – Tiradentes, Minas Gerais Endereço Normal Situação Casado Estado Civil 222.222.222-22 CPF R$ 1.700,00 Salário Variáveis Compostas Heterogêneas • Na linguagem C, as Estruturas são conjuntos heterogêneos de dados que são agrupados e referenciados através de um mesmo nome. • Uma estrutura agrupa várias variáveis numa só ▫ Tipo de dado definido pelo programador Estruturas em C • Sintaxe: Estruturas em C • Exemplo: Referência a elementos de estrutura • Usa-se do operador ponto (.) para acessar os elementos de uma estrutura Referência a elementos de estrutura • Usa-se do operador ponto (.) para acessar os elementos de uma estrutura Referência a elementos de estrutura • Usa-se do operador ponto (.) para acessar os elementos de uma estrutura Copia todos os elementos de x para y (diferente de vetores) Referência a elementos de estrutura • Usa-se do operador ponto (.) para acessar os elementos de uma estrutura Referência a elementos de estrutura ▫ A atribuição de variáveis do tipo string em C só pode ser feita através da função de biblioteca strcpy() Exemplo • Declarar a estrutura CAD que possui os seguintes campos: ▫ nome, endereço, CPF, sexo e data de nascimento. • O endereço é uma estrutura contendo o nome da rua, número e CEP. Matrizes de Estruturas • Pode-se declarar matrizes de estruturas em C. ▫ Por exemplo, para a estrutura ficha declarada anteriormente, a seguinte matriz é válida: ▫ vetorDeFichas é um vetor com 100 elementos do tipo ficha (estrutura definida anteriormente) Matrizes de Estruturas • Pode-se declarar matrizes de estruturas em C. ▫ Por exemplo, para a estrutura ficha declarada anteriormente, a seguinte matriz é válida: ▫ O acesso às posições é feito diretamente Exercício 1 • Escreva um programa fazendo o uso de struct's. Você deverá criar uma struct chamada Ponto, contendo apenas a posição x e y (inteiros) do ponto. Declare 2 pontos, leia a posição (coordenadas x e y) de cada um e calcule a distância entre eles. Apresente no final a distância entre os dois pontos. Exercício 2 • Para controle dos veículos que circulam numa cidade, a Secretaria dos Transportes criou o seguinte registro: • O combustível pode ser álcool, diesel ou gasolina. Sabendo que o número de veículos na cidade é 10, faça: ▫ Construa um programa em C que leia os 10 registros de carros desta cidade. ▫ Liste todos os proprietários cujos carros são do ano de 1980 ou posterior e que sejam movidos a diesel. ▫ Liste todas as placas que terminem com o número 0, 2, 4, 6, e 8 e seus respectivos proprietários. Proprietário Combustível Modelo Cor Ano Placa Estruturas como Parâmetros • Quando uma estrutura é passada para uma função, a estrutura inteira é passada usando o método de chamada por valor. Ponteiros para Estruturas • Podemos declaras ponteiros para estruturas colocando * na frente do nome da estrutura. Ponteiros para Estruturas • Podemos declaras ponteiros para estruturas colocando * na frente do nome da estrutura. Acesso ao campo de uma estrutura usando ponteiro Alocação Dinâmica typedef Definir explicitamente novos nomes aos tipos de dados utilizando a palavra chave typedef. Exercício • Seja a seguinte struct que é utilizada para descrever os produtos que estão no estoque de uma loja : • Desenvolva um programa em C que faça: ▫ Alocação de memória dinâmica, de forma que se possa armazenar 10 produtos na área de memória. ▫ Leitura desses 10 produtos. ▫ Consulta do preço através do nome do produto ou código do produto. Quando o usuário entrar com o nome “fim” ou com o código “-1”, o programa deve ser finalizado.
Compartilhar