Buscar

Aula 10 - Estruturas em C

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.

Continue navegando