Buscar

Tipos Estruturados de dados

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 31 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 31 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 31 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

Introdução
Exercícios
Considerações finais
Tipos estruturados de dados
Prof. DSc. Newton Spolaôr
Disciplina Computação I
Bacharelado em Ciência da Computação
Universidade Estadual do Oeste do Paraná (UNIOESTE)
Brasil
18/10/2016
Introdução
Exercícios
Considerações finais
Sumário
1 Introdução
2 Exercícios
3 Considerações finais
Newton Spolaôr Tipos estruturados de dados 2
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Aula anterior em um breve olhar
Na aula anterior foram apresentados conceitos sobre
String: vetor de caracteres que exige atenção especial
Operações com bits: AND, OR, XOR e deslocamento de
bits
Nesta aula falaremos sobre um tipo de dados
heterogêneos (struct), capaz de agrupar dados de tipos
diferentes
Newton Spolaôr Tipos estruturados de dados 3
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Motivação para vetores [1]
Como mencionado há algumas aulas, o uso de novos tipos
de dados pode melhorar a escalabilidade de um algoritmo
Vetores são um tipo de dados que pode auxiliar nesta
tarefa
Neste cenário, convém discutir sobre a representação de
um conjunto de informações de diferentes tipos
relacionadas a um aluno dentro de um programa
Newton Spolaôr Tipos estruturados de dados 4
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de um aluno [2, 1]
Nome (string)
RG (int)
Data de nascimento (string)
Data de matrícula (string)
Coeficiente de rendimento (double)
Newton Spolaôr Tipos estruturados de dados 5
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de um aluno [1]
Como essas informações poderiam ser representadas em
um algoritmo?
Uma alternativa consiste na declaração de 5 variáveis
int main()
...
char nome[255];
int RG;
...
Mas o que aconteceria se for necessário gerenciar
informações de uma turma de 40 alunos?
Newton Spolaôr Tipos estruturados de dados 6
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de um aluno [1]
Como essas informações poderiam ser representadas em
um algoritmo?
Uma alternativa consiste na declaração de 5 variáveis
int main()
...
char nome[255];
int RG;
...
Mas o que aconteceria se for necessário gerenciar
informações de uma turma de 40 alunos?
Newton Spolaôr Tipos estruturados de dados 6
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de um aluno [1]
Como essas informações poderiam ser representadas em
um algoritmo?
Uma alternativa consiste na declaração de 5 variáveis
int main()
...
char nome[255];
int RG;
...
Mas o que aconteceria se for necessário gerenciar
informações de uma turma de 40 alunos?
Newton Spolaôr Tipos estruturados de dados 6
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de vários alunos [1]
Certamente não convém criar 40 × 5 = 200 variáveis
Uma alternativa baseada no que foi visto até agora na
disciplina consiste em declarar cinco vetores com 40
elementos
int main()
...
char nomes[40][255];
int RGs[40];
...
Newton Spolaôr Tipos estruturados de dados 7
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de vários alunos [1]
Certamente não convém criar 40 × 5 = 200 variáveis
Uma alternativa baseada no que foi visto até agora na
disciplina consiste em declarar cinco vetores com 40
elementos
int main()
...
char nomes[40][255];
int RGs[40];
...
Newton Spolaôr Tipos estruturados de dados 7
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de vários alunos [1]
Contudo, gerenciar adequadamente os cinco vetores,
mantendo seus dados consistentes, seria complexo
Uma solução melhor para esse problema envolve o uso de
duas estruturas
Tipo de dados estruturado (struct) para representar
informações de um aluno
Vetor simples de 40 elementos do tipo struct
Newton Spolaôr Tipos estruturados de dados 8
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de um aluno [1]
Figura: struct Aluno é um tipo de dados estruturado com 5 campos
que representam informações heterogêneas de um aluno
Newton Spolaôr Tipos estruturados de dados 9
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Representação de informações de vários alunos [1]
Figura: A variável v é um vetor simples de struct que permite
armazenar informações de 40 alunos
Newton Spolaôr Tipos estruturados de dados 10
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Forma geral para criar um tipo estruturado em C [3]
Antes de ir para o código, algumas observações sobre
struct em C
O tipo de dados correspondente ao struct deve ser
criado fora de qualquer função, similar ao que ocorria no
Pascal
Embora seja possível declarar um ou mais campos do
mesmo tipo de dados em um struct, cada campo deve
ser criado junto com seu tipo
struct nome_da_estrutura{
tipo_de_dados_1 nome_campo_1;
tipo_de_dados_2 nome_campo_2;
...
tipo_de_dados_k nome_campo_k;
};
Newton Spolaôr Tipos estruturados de dados 11
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Código C para criar os tipos de dados e variáveis
struct Aluno{ //estrutura para um aluno
char nome[255];
int RG;
char DNasc[10];
char DMatr[10];
double coef;
}
Newton Spolaôr Tipos estruturados de dados 12
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Código C para criar os tipos de dados e variáveis
//continuação
int main()
{
struct Aluno joao; //declaração de variável
//do tipo de dados
//struct Aluno
struct Aluno v[40]; //declaração de vetor
//para 40 alunos
return 0;
}
Newton Spolaôr Tipos estruturados de dados 13
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Campos de um registro [1]
Enquanto que um vetor simples é constituído por
elementos, um registro é composto por campos
Para acessar um campo, seja para atribuição ou para
consulta, é necessário utilizar o operador . (ponto final),
como exemplificado a seguir
Atribuição de RG para aluno (variável) joao:
joao.RG = 91233219;
Leitura do RG do aluno joao:
scanf("%d",joao.RG)
Escrita do nome do 1o aluno do vetor v:
printf("%s",v[0].nome)
;
Newton Spolaôr Tipos estruturados de dados 14
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Campos de um registro [1]
Enquantoque um vetor simples é constituído por
elementos, um registro é composto por campos
Para acessar um campo, seja para atribuição ou para
consulta, é necessário utilizar o operador . (ponto final),
como exemplificado a seguir
Atribuição de RG para aluno (variável) joao:
joao.RG = 91233219;
Leitura do RG do aluno joao:
scanf("%d",joao.RG)
Escrita do nome do 1o aluno do vetor v:
printf("%s",v[0].nome)
;
Newton Spolaôr Tipos estruturados de dados 14
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Campos de um registro [1]
Enquanto que um vetor simples é constituído por
elementos, um registro é composto por campos
Para acessar um campo, seja para atribuição ou para
consulta, é necessário utilizar o operador . (ponto final),
como exemplificado a seguir
Atribuição de RG para aluno (variável) joao:
joao.RG = 91233219;
Leitura do RG do aluno joao:
scanf("%d",joao.RG)
Escrita do nome do 1o aluno do vetor v:
printf("%s",v[0].nome);
Newton Spolaôr Tipos estruturados de dados 14
Introdução
Exercícios
Considerações finais
Aula anterior em um breve olhar
Motivação para vetor composto
Objetivo geral desta aula
Objetivo geral desta aula
Apresentar e exercitar tipos estruturados de dados em C.
Newton Spolaôr Tipos estruturados de dados 15
Introdução
Exercícios
Considerações finais
Sumário
1 Introdução
2 Exercícios
3 Considerações finais
Newton Spolaôr Tipos estruturados de dados 16
Introdução
Exercícios
Considerações finais
Exercício 1 [1]
Represente um registro para armazenar dia, mês e ano
referente a uma data genérica
Newton Spolaôr Tipos estruturados de dados 17
Introdução
Exercícios
Considerações finais
Exercício 2 [3]
Crie uma estrutura para carros com as seguintes
informações: fabricante, modelo, ano, cor e preço
Após, escreva um programa principal que leia as
informações de um carro e, depois da leitura, imprima as
informações na tela utilizando a estrutura criada
anteriormente
Newton Spolaôr Tipos estruturados de dados 18
Introdução
Exercícios
Considerações finais
Exercício 3 [3]
A partir do exercício anterior, após lidos os dados no
programa, crie uma função que receba o registro e
modifique para 2000 o ano de fabricação do carro, caso o
mesmo seja anterior a 2000
Além disso, modifique o fabricante para “GM”, caso o
mesmo seja Chevrolet
Após a chamada, imprima as informações na tela
utilizando a estrutura preenchida na função
Newton Spolaôr Tipos estruturados de dados 19
Introdução
Exercícios
Considerações finais
Exercício 4 [3]
Crie uma estrutura para armazenar dados sobre filmes
(título, gênero e ano)
Crie e leia um vetor com informações de 5 filmes
Newton Spolaôr Tipos estruturados de dados 20
Introdução
Exercícios
Considerações finais
Exercício 5 [3]
Crie uma função que receba um vetor de 5 filmes e
imprima os títulos dos filmes de aventura feitos entre 2001
e 2005
Newton Spolaôr Tipos estruturados de dados 21
Introdução
Exercícios
Considerações finais
Exercício 6 [3]
Crie um registro para os funcionários de uma empresa
com as seguintes informações: número do funcionário,
nome, idade, telefone, cargo e salário
O programa deve manter o cadastro de até 100
funcionários
A partir disso, crie e chame uma função que implementa
cada uma das seguintes tarefas
Inserir funcionário
Impressão das informações de todos os funcionários
cadastrados
Procurar funcionário pelo nome ou pelo número, e imprimir
seus dados
Newton Spolaôr Tipos estruturados de dados 22
Introdução
Exercícios
Considerações finais
Considerações finais
1 Introdução
2 Exercícios
3 Considerações finais
Newton Spolaôr Tipos estruturados de dados 23
Introdução
Exercícios
Considerações finais
Considerações finais
Nesta aula foram apresentados conceitos relacionados a
tipos estruturados de dados, implementados como
struct em C
Também foram resolvidos exercícios envolvendo esses
conceitos
Newton Spolaôr Tipos estruturados de dados 24
Introdução
Exercícios
Considerações finais
Contato
newtonsp.unioeste@gmail.com
Newton Spolaôr Tipos estruturados de dados 25
Introdução
Exercícios
Considerações finais
Referências bibliográficas
[1] M. S. Linder, “Algoritmos e programação,”
www.univasf.edu.br/ marcelo.linder, 2011, notas didáticas.
[2] cliparwolf.com, “Time travel: a scifi horror,”
http://cliparwolf.com/image.php?pic=/cliparts/files2/unfairness-
clipart-student-clip-art-6.png,
2015.
[3] D. F. Wolf, “Algoritmos,” http://wiki.icmc.usp.br/index.php/Scc-101,
2014, notas didáticas.
Newton Spolaôr Tipos estruturados de dados 26
	Introdução
	Aula anterior em um breve olhar
	Motivação para vetor composto
	Objetivo geral desta aula
	Exercícios
	Considerações finais

Continue navegando