Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUO S
ESTRUTURAS DE DADOS
Prof. Dr. Daniel Caetano
2012 - 2
Objetivos
Conhecer o professor e o curso
Importncia do ENADE
Compreender o que so
estruturas de dados e sua
importncia
Implementar funes
Apresentao
Quem o
professor?
Vamos
comear?
Informaes de Contato
Daniel Caetano
prof@caetano.eng.br
Nome Completo
CPF
Matrcula
Fulano
012.345.678-90
201101123456
Beltrano
012.345.678-91
201101123457
Cicrano
012.345.678-92
201101123458
PLANO DE ENSINO
E DE AULA
Plano de Ensino
Disponvel no WebAula
1. Entre no SIA
2. CAMPUS VIRTUAL
3. MINHAS DISCIPLINAS
PRESENCIAIS
4. Clique no NOME DA
DISCIPLINA
5. Selecione PLANO DE
ENSINO
Plano de Aula
TRABALHOS, DATAS E
CRITRIO DE APROVAO
Valor
C.H.
Entrega
1,0 na AV1
8h
19/08 (SIA)
1,0 na AV1
1h
31/08 (Aula)
1,0 na AV1
8h
02/09 (SIA)
2,0 na AV1
8h
23/09 (SIA)
6,0 na AV1
2h
28/09 (Aula)
1,0 na AV2
8h
07/10 (SIA)
1,0 na AV2
8h
28/10 (SIA)
2,0 na AV3
8h
18/11 (SIA)
8,0 na AV2
2h
30/11 (Aula)
8,0 na AV3
2h
14/12 (Aula)
0,0 a 4,0
AV1 = P0 + P1 + AE1a3
0,0 a 10,0
0,0 a 8,0
AV2 = AE4e5 + P2
0,0 a 10,0
0,0 a 2,0
AV3 = P3 + AE6
0,0 a 10,0
(Mdia 6,0!)
4) Frequncia 75%
(No mximo
4 faltas!)
AV3 e Reprovaes:
4 ou mais faltas: por volta de 90%
Menos que 4 faltas: por volta de 50%
Menos que 2 faltas: por volta de 20%
BIBLIOGRAFIA E FONTES
DE INFORMAO
Bibliografia
Biblioteca Virtual
Estrutura de Dados
Material do Curso
Estrutura de Dados Srie Livros Didticos Informtica
da UFRGS, Volume 18 (1 Edio, 2009)
Edelweiss e Galante
Artmed / Bookman
ISBN: 9788577803811
Bibliografia
Mais Livros!
Estrutura de Dados: algoritmos, anlise
da complexidade e implementaes em
Java e C/C++ (1 Edio, 2011)
Ascncio e Arajo
Editora Pearson Education
ISBN: 9788576058816 BIBLIOTECA VIRTUAL!
Material Didtico
Deve Ser Solicitado no SIA
1. Entre no SIA
2. SECRETARIA VIRTUAL
3. SOLICITAO DE
MATERIAL
Bibliografia
Notas de Aula
e Apresentaes
http://www.caetano.eng.br/
UM PARNTESES:
PESQUISA CIENTFICA
Pesquisa Cientfica
Desenvolvedor pesquisa?
Carreira Acadmica x Mercado
So excludentes?
Habilidade de Pesquisa
Aplicao de Conceitos Prtica
Estimulo Curiosidade Cientfica
Desenvolver portfolio
Iniciao Cientfica
O que eu ganho com isso?
Experincia
Diferencial profissional
Bolsa de estudos de at 30%*
Eu quero participar...
Como eu fao? http://www.caetano.eng.br/
FORMAO DE
GRUPOS DE TRABALHO
Formao de Grupos
Por que formar grupos?
Quantos alunos?
No mnimo 4 alunos
No mximo 8 alunos
CONTEXTUALIZAO
Contextualizao
Continuao de Algoritmos
Qual a melhor forma de implementar?
Empregabilidade?
Criatividade e senso critico
Domnio da programao
ESTRUTURA DE DADOS?
HEIN?!
Estrutura de Dados
Programa = Algoritmo + Dados
Resoluo de Problema: abstrao
Cadastro de Clientes
Quais dados so importantes?
A idade do cliente importante?
A cor do cabelo do cliente importante?
Estrutura de Dados
Programa = Algoritmo + Dados
Resoluo de Problema: abstrao
Cadastro de Clientes
Quais dados so importantes?
A idade do cliente importante?
A cor do cabelo do cliente importante?
Estrutura de Dados
O que um dado digital?
O que o diferencia de lixo digital?
Sua organizao
Sabemos como encontr-los
E isso permite...
Busca
Remoo
Insero...
Organizao Desempenho
NO DIA-A-DIA
Diretor de
Criao
Subdiretor 1
Subdiretor 2
TIPOS DE ESTRUTURA
DE DADOS
Presidente
VicePresidente
Diretor de
Vendas
Diretor de
Criao
Subdiretor 1
Subdiretor 2
fundamental
Presidente
identificar a melhor
estrutura para cada
VicePresidente
problema!
Diretor de
Vendas
Diretor de
Criao
Subdiretor 1
Subdiretor 2
FORMAS DE
ARAMZENAMENTO E
MANIPULAO DE
ESTUTURA DE DADOS
Armazenamento de Estruturas
Duas maneiras de armazenar
Sequencial (ou contgua)
Espao pr-alocado
Tamanho pr-definido
Neste curso
Estruturas lineares sequenciais e encadeadas
Armazenamento de Estruturas
Iniciaremos com as sequenciais...
Qual o tipo de varivel de C/C++ que serve
para guardar, sequencialmente, muitos dados
iguais?
Vetores
Manipulao de Estruturas
Imagine uma lista de notas
Inicialmente vazia
Inserir notas
Remover notas
Buscar notas...
Como realizar essas tarefas?
Manipulao de Estruturas
Inserir, Remover e Buscar sero semelhantes
para qualquer lista
Sempre que precisarmos inserir, o cdigo o
mesmo
Que tal criarmos um algoritmo chamado
inserir, por exemplo?
Sempre que precisarmos inserir um valor, bastar
solicitar que o computador execute o algoritmo
inserir
Manipulao de Estruturas
Esses algoritmos com nome recebem o
nome de funes
Antes de estudarmos as estruturas em si...
Vamos aprender a implementar funes!
FUNES
Funes
Funes pr-definidas
abs(x)
int x;
x = -4;
cout << O valor absoluto de ;
cout << x << = ;
cout << abs(x) << endl;
Funes
abs na raa:
int x;
x = -4;
cout << O valor absoluto de ;
cout << x << = ;
if (x >= 0) cout << x << endl;
else cout << -x << endl;
Funes
abs na raa:
int x;
x = -4;
cout << O valor absoluto de ;
cout << x << = ;
Que
tal <<
criar
nosso
if (x >= 0)
cout
x <<
endl;
else cout << prprio
-x << endl;
abs?
CRIANDO NOSSAS
PRPRIAS FUNES
Criando Funes
Passo 1: criar um programa que calcule o
permetro de um crculo de raio 2
P = 2R
= 3,141592
Criando Funes
Passo 2: transformar o clculo em uma
funo chamada calcula
Criando Funes
Passo 2: transformar o clculo em uma
funo chamada calcula
As variveis criadas dentro da funo s existem
dentro desta funo
Elas so chamadas variveis locais
No possvel acessar uma varivel local a no
ser de dentro da prpria funo
Os valores das variveis locais so destrudos
quando a funo finaliza
Criando Funes
Passo 3: modificar a funo calcula para que
ela para que ela retorne o resultado, ao
invs de imprimi-lo
Criando Funes
Passo 3: modificar a funo calcula para que
ela para que ela retorne o resultado, ao
invs de imprimi-lo
return deve sempre retornar um valor do tipo
correto
return pode ser usado sem nenhum valor em
funes cujo retorno do tipo void
Criando Funes
Passo 4: modificar a funo calcula para que
ela receba o raio do crculo como parmetro
Criando Funes
Passo 4: modificar a funo calcula para que
ela receba o raio do crculo como parmetro
Os parmetros funcionam como variveis locais
O valor fornecido como parmetro (o raio)
copiado para essa varivel local
Criando Funes
Passo 5: modificar a funo calcula para que
ela retorne, alm do permetro da
circunferncia, tambm a rea do crculo e o
volume da esfera
A = R2
V = (4/3) R3
Criando Funes
Passo 5: modificar a funo calcula para que
ela retorne, alm do permetro da
circunferncia, tambm a rea do crculo e o
volume da esfera
A = R2
V = (4/3) R3
Parmetros cujo nome precedido por & so
passados por referncia, isto , podem ser
modificados na funo
Criando Funes
Passo 6: mova a funo para o fim do
arquivo
Criando Funes
Passo 6: mova a funo para o fim do
arquivo
A declarao inicial chamada prottipo de
funo
VARIVEIS GLOBAIS
Variveis Globais
Exemplo
EXERCCIOS DE FIXAO
Exerccios de Fixao
1) Qual a melhor estrutura de dados para
representar o sistema de pastas e arquivos do
sistema operacional?
a)
b)
c)
d)
Pilha
Fila
rvore
Grafo
Exerccios de Fixao
2) Os navegadores web armazenam as pginas
visitadas de maneira que ao apertar o boto
voltar a ltima pgina visitada seja
apresentada, retirando este endereo da
estrutura. Considerando s esse aspecto, qual a
melhor estrutura de dados?
a)
b)
c)
d)
Pilha
Fila
rvore
Lista
Exerccios de Fixao
3) Faa uma funo em C/C++ que calcule a rea
de um retngulo e tenha o seguinte prottipo:
Exerccios de Fixao
4) Faa uma funo em C/C++ que calcule a rea de
um retngulo e tenha o seguinte prottipo:
void calculaArea2(double base, double alt, double &area);
CONCLUSES
Resumo
Prxima Aula
Listas Lineares
Sequenciais...
Como implementar
isso?
Funes e Vetores!
PERGUNTAS?
BOM DESCANSO
A TODOS!