Buscar

Aula 9 - TIPOS DE DADOS DEFINIDOS PELO USUÁRIO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 32 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROGRAMAÇÃO II 
AULA 8 – TIPOS DE DADOS DEFINIDOS PELO 
USUÁRIO 
 
 
 
 
 
 
 
CIÊNCIA DA COMPUTAÇÃO 
 
ESTRUTURAS 
Uma estrutura agrupa várias 
variáveis numa só; 
 
Funciona, por exemplo, como uma ficha 
pessoal que tenha nome, telefone e 
endereço  A ficha é uma estrutura; 
 
Uma estrutura, então, serve para agrupar 
um conjunto de dados não similares, 
formando um novo tipo de dados 2 
ESTRUTURAS - CRIANDO 
Para se cria uma estrutura usa-se o comando 
struct; 
 
 
 
 
 
O nome_do_tipo_da_estrutura é o nome da 
estrutura. As variáveis da estrutura são 
opcionais e seriam nomes de variáveis que o 
usuário já estaria declarando; 
 
3 
ESTRUTURAS - CRIANDO 
 
 
 
 
 
Nestes caso est é uma estrutura com dois 
campos, i e f. 
 
Foram declaradas também duas 
variáveis, a e b que são do tipo da 
estrutura; 4 
ESTRUTURAS - CRIANDO 
 Crie estruturas para: 
 
Endereço: rua, numero, bairro, 
cidade, sigla do estado e cep; 
 
Ficha pessoal: Nome, telefone, 
Endereço; 
5 
ESTRUTURAS - CRIANDO 
6 
PROJETO 1 – CRIANDO E UTILIZANDO 
ESTRUTURAS 
7 
PROJETO 1 – CRIANDO E UTILIZANDO 
ESTRUTURAS 
8 
CRIANDO E UTILIZANDO ESTRUTURAS 
O programa anterior declara uma variável do 
tipo ficha_pessoal e preenche seus dados. 
 
O programa mostra como podemos acessar um 
elemento de uma estrutura: basta usar o ponto 
(.); 
 
Mostra também como podemos acessar uma 
struct dentro de outra struct 
9 
VETORES DE ESTRUTURAS 
Uma estrutura é como qualquer outro tipo de 
dado em C, sendo assim, podemos criar 
matrizes e vetores de struct; 
 
Por exemplo um vetor de 100 fichas pessoas; 
 
Poderíamos por exemplo, acessar a segunda 
letra da sigla de estado da décima terceira 
ficha: 
10 
ESTRUTURAS – ATRIBUIÇÕES 
Podemos atribuir duas estruturas que 
sejam do mesmo tipo; 
 
O C irá, neste caso, copiar uma 
estrutura, campo por campo, na outra; 
 
Diferente do que acontece com vetores! 
 
Cuidado com ponteiros! 11 
ESTRUTURAS – ATRIBUIÇÕES 
PROJETO 2 
12 
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. 
13 
ESTRUTURAS – PASSANDO PARA FUNÇÕES 
Podemos também passar para uma função uma 
estrutura inteira. 
 
 
 
A passagem da estrutura é feita por valor. A 
estrutura que está sendo passada, vai ser 
copiada, campo por campo, em uma variável local 
da função PreencheFicha; 
 
Podemos contornar este pormenor utilizando 
ponteiros 
14 
ESTRUTURAS – PONTEIROS 
Podemos ter um ponteiro para uma estrutura. 
Considerando a struct ficha_pessoal, temos: 
 
Para usá-lo, haveria duas possibilidades. A 
primeira é apontá-lo para uma variável struct 
já existente, da seguinte forma: 
 
15 
ESTRUTURAS – PONTEIROS 
PROJETO 3 
A segunda é alocando memória para ficha_pessoal 
usando por exemplo malloc(): 
 
 
 
 
 
 
 
 
Como mudaria o nome da 4ª ficha para Anselmo Ramon 
16 
ESTRUTURAS – PONTEIROS 
Se apontarmos o ponteiro p para 
uma estrutura qualquer, como 
fizemos em p=&ficha, e quisermos 
acessar um elemento da estrutura 
podemos fazer: 
 
Os parênteses são necessários, 
porque o operador . tem precedência 
maior que o operador * 
17 
ESTRUTURAS – PONTEIROS 
Porém este formato não é muito 
utilizado; 
 
O que é comum de se fazer é acessar o 
elemento nome através do operador 
seta. 
 
E para acessarmos o CEP dentro de 
endereço 18 
O COMANDO SIZEOF 
O sizeof é usado para se saber o tamanho de 
variáveis ou de tipos. 
 Retorna o tamanho do tipo ou variável em bytes; 
 Aplicação importante do sizeof é para se saber o 
tamanho de tipos criados pelo usuário 
19 
O COMANDO TYPEDEF 
O comando typedef permite ao programador 
definir um novo nome para um determinado 
tipo; 
 
Como por exemplo vamos dar nome de inteiro 
para int; 
 
O comando typedef também pode ser 
utilizado para dar nome a tipos complexos, 
como as estruturas; 
 Não sendo mais necessário a declaração da 
palavra struct para novas variáveis 
20 
O COMANDO TYPEDEF 
PROJETO 4 
21 
O COMANDO TYPEDEF 
PROJETO 4 
22 
EXERCÍCIO 2 
Faça um programa para 
manipular os produtos de 
uma determinada loja. É 
necessário saber sobre 
cada produto: código, 
nome, preço. 
23 
O programa deverá oferecer as opções: 
Inserir, Alterar, Remover e Listar. Deverá 
ser utilizado structs, typedef, sizeof e 
alocação dinâmica (ponteiros) 
UMA APLICAÇÃO DE STRUCTS: AS LISTAS 
SIMPLESMENTE ENCADEADAS 
Várias estruturas de dados complexas 
podem ser criadas utilizando 
simultaneamente structs e ponteiros  
Uma delas é a LISTA ENCADEADA; 
 
Uma lista encadeada é uma sequência 
de structs, que são nós da lista, ligados 
entre si através de ponteiros. 
24 
UMA APLICAÇÃO DE STRUCTS: AS LISTAS 
SIMPLESMENTE ENCADEADAS 
Esta sequência pode ser acessada 
através de um ponteiro para o primeiro 
nó, que é a cabeça da lista. 
 Cada nó contém um ponteiro que aponta 
para a struct que é a sucessora na lista; 
 O ponteiro do último nó aponta para 
NULL, indicando o fim da lista; 
 
Esta estrutura de dados é criada 
dinamicamente (malloc() e free()) 
 
25 
UMA APLICAÇÃO DE STRUCTS: AS LISTAS 
SIMPLESMENTE ENCADEADAS 
EXERCÍCIO 3 
26 
27 
28 
29 
30 
EXERCÍCIO 3 
Implementar as funções: 
 
void Alterar(ListaProduto *lista); 
 
void Excluir(ListaProduto *lista); 
 
31 
32

Outros materiais