SlideShare uma empresa Scribd logo
ESTRUTURA DE DADOS
Prof. Dr. Daniel Caetano
2012 - 2
INTRODUÇÃO ÀS
ESTRUTURAS DE DADOS
Objetivos
• Conhecer o professor e o curso
• Importância do ENADE
• Compreender o que são
estruturas de dados e sua
importância
• Implementar funções
Apresentação
Quem é o
professor?
Vamos
começar?
Quem É Quem – Lista de Presença
Nome Completo CPF Matrícula
Fulano 012.345.678-90 201101123456
Beltrano 012.345.678-91 201101123457
Cicrano 012.345.678-92 201101123458
Professor Informações de Contato
Daniel Caetano prof@caetano.eng.br
PLANO DE ENSINO
E DE AULA
Plano de Ensino
Disponível 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
• 20/07 – 1. Apres. / Funções
• 27/07 – 2. Vetores: Listas
• 03/08 – 3. Listas: Ordenação
• 10/08 – 4. Listas: Ordenação
• 17/08 – 5. Pilhas
• 24/08 – 6. Pilhas
• 31/08 – 7. Filas / P0
• 07/09 – FERIADO
• 14/09 – 8. Filas Circulares
• 21/09 – 9. Estruturas / Pointers
• 28/09 – 10. Listas Encad. / P1
• 05/10 – 11. Pilhas Encadeadas
• 12/10 – FERIADO
• 19/10 – 12. Filas Encadeadas
• 26/10 – 13. Lista Circ. Encadeada
• 02/11 – FERIADO
• 09/11 – 14. Lista Duplam. Encad.
• 16/11 – 15. Lista Duplam. Encad.
• 23/11 – 16. Revisão Geral
• 30/11 – P2
• 07/12 – Revisão de Nota - P2
• 14/12 – P3
TRABALHOS, DATAS E
CRITÉRIO DE APROVAÇÃO
Qualidade de Ensino - ENADE
• Vocês sabem o que é o ENADE?
http://www.enade.estacio.br/
• Qual a nota da instituição?
• E a nota do curso?
• E qual nota você quer para você?
Vamos melhorar cada vez mais!
Trabalhos, Datas e Aprovação
Trabalho Valor C.H. Entrega
AE1 (Grupo / Individual) 1,0 na AV1 8h 19/08 (SIA)
P0 (Individual / Com Consulta*) 1,0 na AV1 1h 31/08 (Aula)
AE2 (Grupo / Individual) 1,0 na AV1 8h 02/09 (SIA)
AE3 (Grupo / Individual) 2,0 na AV1 8h 23/09 (SIA)
P1 (Individual / Com Consulta*) 6,0 na AV1 2h 28/09 (Aula)
AE4 (Grupo / Individual) 1,0 na AV2 8h 07/10 (SIA)
AE5 (Grupo / Individual) 1,0 na AV2 8h 28/10 (SIA)
AE6 (Grupo / Individual) 2,0 na AV3 8h 18/11 (SIA)
P2 (Individual / Sem Consulta) 8,0 na AV2 2h 30/11 (Aula)
P3 (Individual / Sem Consulta) 8,0 na AV3 2h 14/12 (Aula)
(*) Consulta nos moldes da folha de referência fornecida no site da disciplina.
Trabalhos, Datas e Aprovação
• Atenção ao prazo de entrega das AE1 a AE6...
• As Atividades Estruturadas serão entregues
pelo SIA e serão penalizadas em 0,4 ponto
por dia de atraso.
• Mesmo que já não valham nota, elas
precisam ser entregues, pois valem parte
significativa da carga-horária!
• As atividades são grandes, não marque
bobeira!
Trabalhos, Datas e Aprovação – AV1
• Se fizer as provas P0 e P1 à caneta, incluindo o
preenchimento completo do cabeçalho, ganha: 0,1
na P0 e 0,25 na P1
• Entregando a folha de consulta (dentro do padrão)
com a prova, ganha: 0,1 na P0 e 0,25 na P1
• As notas da P0 e das AE1 a AE3 serão somadas à
nota da prova P1 para compor a média AV1.
AV1 = P0 + P1 + AE1a3
0,0 a 6,0 0,0 a 4,0
0,0 a 10,0
0,0 a 1,0
Trabalhos, Datas e Aprovação – AV2
• A nota das AE4 e AE5 (total de 0 a 2) será
somada à nota da P2 para compor a nota
AV2.
AV2 = AE4e5 + P2
0,0 a 8,0
0,0 a 10,0
0,0 a 2,0
Trabalhos, Datas e Aprovação – AV3
• A nota da AE6 (de 0 a 2,0) será somada à
nota da prova P3 para compor a média AV3.
AV3 = P3 + AE6
0,0 a 8,0 0,0 a 2,0
0,0 a 10,0
Trabalhos, Datas e Aprovação – Final
A = Maior nota entre { AV1 , AV2 , AV3 }
B = Segunda maior nota entre { AV1 , AV2 , AV3 }
Critérios de Aprovação (TODOS precisam ser atendidos)
1) A ≥ 4,0
2) B ≥ 4,0
3) A + B ≥ 12,0 (Média 6,0!)
4) Frequência ≥ 75% (No máximo 4faltas!)
ATENÇÃO: Se você tiver mais que uma nota abaixo de 4,0,
ainda que o SIA aponte uma média maior que 6,0, você
estará REPROVADO!
Relação entre Faltas e Reprovação
• Todos os semestres: alta correlação
– Mais faltas: piores médias
• Média Presentes / Média Faltantes > 1.5
• AV3 e Reprovações:
– 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 INFORMAÇÃO
Bibliografia
• Biblioteca Virtual
– Estrutura de Dados
• Material do Curso
– Estrutura de Dados – Série Livros Didáticos Informática
da UFRGS, Volume 18 (1ª Edição, 2009)
• Edelweiss e Galante
• Artmed / Bookman
• ISBN: 9788577803811
Bibliografia
• Mais Livros!
– Estrutura de Dados: algoritmos, análise
da complexidade e implementações em
Java e C/C++ (1ª Edição, 2011)
• Ascêncio e Araújo
• Editora Pearson Education
• ISBN: 9788576058816 BIBLIOTECA VIRTUAL!
– Lógica de Programação: a construção de algoritmos e
estruturas de dados (3ª Edição, 2005)
• Forbellone e Eberspacher
• Editora Pearson
• ISBN: 9788576050247 BIBLIOTECA VIRTUAL!
Material Didático
Deve Ser Solicitado no SIA
1. Entre no SIA
2. SECRETARIA VIRTUAL
3. SOLICITAÇÃO DE
MATERIAL
Bibliografia
• Notas de Aula
e Apresentações
http://www.caetano.eng.br/
UM PARÊNTESES:
PESQUISA CIENTÍFICA
Pesquisa Científica
• Desenvolvedor pesquisa?
• Carreira Acadêmica x Mercado
– São excludentes?
• Como iniciar na pesquisa?
– Iniciação Científica
– Desenvolver:
• Habilidade de Pesquisa
• Aplicação de Conceitos à Prática
• Estimulo à Curiosidade Científica
• Desenvolver portfolio
Iniciação Científica
• O que eu ganho com isso?
– Experiência
– Diferencial profissional
– Bolsa de estudos de até 30%*
• Eu quero participar...
– Como eu faço? → http://www.caetano.eng.br/
FORMAÇÃO DE
GRUPOS DE TRABALHO
Formação de Grupos
• Por que formar grupos?
• Quantos alunos?
– No mínimo 4 alunos
– No máximo 8 alunos
• Entregar, na aula que vem, lista de NOMES de
cada aluno, indicando o NOME DA EQUIPE.
• Atenção:
– Elejam UM responsável por subir os dados no SIA,
que deve fornecer o e-mail para o professor!
VOLTANDO À PROGRAMAÇÃO NORMAL:
CONTEXTUALIZAÇÃO
Contextualização
• Continuação de Algoritmos
– Qual a melhor forma de implementar?
• Relação Disciplina x Curso
– Desenvolvimento de Software
– Análise / Projeto de Software
– Sistemas Operacionais
– Banco de Dados
• Empregabilidade?
– Criatividade e senso critico
– Domínio da programação
ESTRUTURA DE DADOS?
HEIN?!
Estrutura de Dados
• Programa = Algoritmo + Dados
• Resolução de Problema: abstração
• Cadastro de Clientes
– Quais dados são importantes?
• A idade do cliente é importante?
• A cor do cabelo do cliente é importante?
– Qual o algoritmo usar?
• Como encontrar um cliente?
• Como inserir um novo cliente?
Estrutura de Dados
• Programa = Algoritmo + Dados
• Resolução de Problema: abstração
• Cadastro de Clientes
– Quais dados são importantes?
• A idade do cliente é importante?
• A cor do cabelo do cliente é importante?
– Qual o algoritmo usar?
• Como encontrar um cliente?
• Como inserir um novo cliente?
Estrutura de Dados
• O que é um “dado digital”?
• O que o diferencia de “lixo digital”?
• Sua organização
– Sabemos como encontrá-los
• E isso permite...
– Busca
– Remoção
– Inserção...
• Organização → Desempenho
NO DIA-A-DIA
Estrutura de Dados no Dia-a-Dia
• Representar a organização de uma empresa
– 1 presidente, 1 vice-presidente, 1 diretor de
vendas e 1 de criação, este último com 2
subdiretores?
Presidente
Vice-
Presidente
Diretor de
Vendas
Diretor de
Criação
Subdiretor 1 Subdiretor 2
Estrutura de Dados no Dia-a-Dia
• Como representar a bibliografia do curso?
– Estrutura de Dados: algoritmos, análise da
complexidade e implementações em Java e C/C++
– Lógica de Programação: a construção de algoritmos e
estruturas de dados
– Estrutura de Dados – Série Livros Didáticos Informática
da UFRGS, Volume 18
Estrutura de Dados no Dia-a-Dia
• Como o motoboy organiza as pizzas?
Estrutura de Dados no Dia-a-Dia
• Como as pessoas esperam no banco?
Estrutura de Dados no Dia-a-Dia
• Como representar os trajetos possíveis em
uma companhia aérea?
TIPOS DE ESTRUTURA
DE DADOS
Tipos de Estrutura de Dados
• Lineares x Não-lineares
• Lineares
Tipos de Estrutura de Dados
• Lineares x Não-lineares
• Lineares
• 1º. Elemento bem definido
• Último elemento bem definido
• Elementos intermediários: um
antecessor e um sucessor
Tipos de Estrutura de Dados
• Não-lineares
Presidente
Vice-
Presidente
Diretor de
Vendas
Diretor de
Criação
Subdiretor 1 Subdiretor 2
• Árvore: relação hierárquica
• Grafo: relação qualquer
Tipos de Estrutura de Dados
• Não-lineares
Presidente
Vice-
Presidente
Diretor de
Vendas
Diretor de
Criação
Subdiretor 1 Subdiretor 2
• Árvore: relação hierárquica
• Grafo: relação qualquer
É fundamental
identificar a melhor
estrutura para cada
problema!
FORMAS DE
ARAMZENAMENTO E
MANIPULAÇÃO DE
ESTUTURA DE DADOS
Armazenamento de Estruturas
• Duas maneiras de armazenar
– Sequencial (ou contígua)
• Espaço pré-alocado
• Tamanho pré-definido
– Encadeada (ou ligada)
• Tamanho inicialmente desconhecido
• Alocação à medida da necessidade
• Neste curso
– Estruturas lineares sequenciais e encadeadas
Armazenamento de Estruturas
• Iniciaremos com as sequenciais...
• Qual o tipo de variável de C/C++ que serve
para guardar, sequencialmente, muitos dados
iguais?
– Vetores
• Vamos começar com uma lista de números
– Que operações vocês conseguem imaginar?
– O que gostaríamos de poder fazer com uma lista?
Manipulação de Estruturas
• Imagine uma lista de notas
– Inicialmente vazia
• Inserir notas
• Remover notas
• Buscar notas...
• Como realizar essas tarefas?
• Existiria muita diferença se tivéssemos uma lista
de alunos? Ou uma lista de rendimentos?
Manipulação de Estruturas
• Inserir, Remover e Buscar serão semelhantes
para qualquer lista
• Sempre que precisarmos inserir, o código é 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
Manipulação de Estruturas
• Esses “algoritmos” com nome recebem o
nome de funções
• Antes de estudarmos as estruturas em si...
– Vamos aprender a implementar funções!
FUNÇÕES
Funções
• Funções pré-definidas
– abs(x)
– O que fazer se a função abs(x) não existisse?
int x;
x = -4;
cout << “O valor absoluto de ”;
cout << x << “ = ”;
cout << abs(x) << endl;
Funções
• abs “na raça”:
• Se tivéssemos de usar isso toda hora...?
– O que fazer?
– Copiar e colar?
int x;
x = -4;
cout << “O valor absoluto de ”;
cout << x << “ = ”;
if (x >= 0) cout << x << endl;
else cout << -x << endl;
Funções
• abs “na raça”:
• Se tivéssemos de usar isso toda hora...?
– O que fazer?
– Copiar e colar?
int x;
x = -4;
cout << “O valor absoluto de ”;
cout << x << “ = ”;
if (x >= 0) cout << x << endl;
else cout << -x << endl;
Que tal criar nosso
próprio abs?
CRIANDO NOSSAS
PRÓPRIAS FUNÇÕES
Criando Funções
• Passo 1: criar um programa que calcule o
perímetro de um círculo de raio 2
– P = 2∙∏∙R
– ∏ = 3,141592
Criando Funções
• Passo 2: transformar o cálculo em uma
função chamada calcula
Criando Funções
• Passo 2: transformar o cálculo em uma
função chamada calcula
– As variáveis criadas dentro da função só existem
dentro desta função
– Elas são chamadas variáveis locais
– Não é possível acessar uma variável local a não
ser de dentro da própria função
– Os valores das variáveis locais são destruídos
quando a função finaliza
Criando Funções
• Passo 3: modificar a função calcula para que
ela para que ela retorne o resultado, ao
invés de imprimi-lo
Criando Funções
• Passo 3: modificar a função calcula para que
ela para que ela retorne o resultado, ao
invés de imprimi-lo
– return deve sempre retornar um valor do tipo
correto
– return pode ser usado sem nenhum valor em
funções cujo retorno é do tipo “void”
Criando Funções
• Passo 4: modificar a função calcula para que
ela receba o raio do círculo como parâmetro
Criando Funções
• Passo 4: modificar a função calcula para que
ela receba o raio do círculo como parâmetro
– Os parâmetros funcionam como variáveis locais
– O valor fornecido como parâmetro (o raio) é
copiado para essa “variável local”
Criando Funções
• Passo 5: modificar a função calcula para que
ela retorne, além do perímetro da
circunferência, também a área do círculo e o
volume da esfera
– A = ∏∙R2
– V = (4/3) ∙∏∙R3
Criando Funções
• Passo 5: modificar a função calcula para que
ela retorne, além do perímetro da
circunferência, também a área do círculo e o
volume da esfera
– A = ∏∙R2
– V = (4/3) ∙∏∙R3
– Parâmetros cujo nome é precedido por & são
passados “por referência”, isto é, podem ser
modificados na função
Criando Funções
• Passo 6: mova a função para o fim do
arquivo
Criando Funções
• Passo 6: mova a função para o fim do
arquivo
– A declaração inicial é chamada “protótipo de
função”
VARIÁVEIS GLOBAIS
Variáveis Globais
• Variáveis das funções: locais
• Passar dados: parâmetros
• Receber respostas: return, parâm. por ref.
• Não há um jeito diferente?
• Sim: Variáveis globais
– Declarar variável junto com os protótipos das
funções
– Cuidado!
– Problemas!
• Exemplo
EXERCÍCIOS DE FIXAÇÃO
Exercícios de Fixação
1) Qual a melhor estrutura de dados para
representar o sistema de pastas e arquivos do
sistema operacional?
a) Pilha
b) Fila
c) Árvore
d) Grafo
Exercícios de Fixação
2) Os navegadores web armazenam as páginas
visitadas de maneira que ao apertar o botão
“voltar” a última página visitada seja
apresentada, retirando este endereço da
estrutura. Considerando só esse aspecto, qual é a
melhor estrutura de dados?
a) Pilha
b) Fila
c) Árvore
d) Lista
Exercícios de Fixação
3) Faça uma função em C/C++ que calcule a área
de um retângulo e tenha o seguinte protótipo:
double calculaArea1(double base, double altura);
Depois construa a main que usa essa função
Exercícios de Fixação
4) Faça uma função em C/C++ que calcule a área de
um retângulo e tenha o seguinte protótipo:
void calculaArea2(double base, double alt, double &area);
Depois construa a main que usa essa função
CONCLUSÕES
Resumo
• Planos de Ensino e Aula
• Datas de avaliações e critérios de aprovação
• Fontes de informação
• O que são dados e estrutura de dados
• Operações e usos comuns de estrutura de dados
• Implementação de funções
• TAREFA PARA PRÓXIMA AULA
– Formar os Grupos dos Trabalhos
Próxima Aula
• Listas Lineares
Sequenciais...
–Como implementar
isso?
–Funções e Vetores!
PERGUNTAS?
BOM DESCANSO
A TODOS!

Mais conteúdo relacionado

Semelhante a ed_aula01.pdf

PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
Instituto Federal de Sergipe
 
Uma introdução à mineração de informações
Uma introdução à mineração de informaçõesUma introdução à mineração de informações
Uma introdução à mineração de informações
Fabrício Barth
 
Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTI
Filipo Mór
 
Como fazer um trabalho escolar em ppt 4 c
Como fazer um trabalho escolar em ppt 4 cComo fazer um trabalho escolar em ppt 4 c
Como fazer um trabalho escolar em ppt 4 c
Elias Garcia
 
Sistemas de Informação
Sistemas de InformaçãoSistemas de Informação
Sistemas de Informação
Piedley macedo
 
Info aula 00 - conceito de internet
Info   aula 00 - conceito de internetInfo   aula 00 - conceito de internet
Info aula 00 - conceito de internet
Bárbara Cerqueira
 
Aulas-Engenharia-de-Metodos-Anhanguera.pptx
Aulas-Engenharia-de-Metodos-Anhanguera.pptxAulas-Engenharia-de-Metodos-Anhanguera.pptx
Aulas-Engenharia-de-Metodos-Anhanguera.pptx
Marcos Boaventura
 
(Transformar 16) Planejamento Estratégico 5
(Transformar 16) Planejamento Estratégico 5(Transformar 16) Planejamento Estratégico 5
(Transformar 16) Planejamento Estratégico 5
Ink_conteudos
 
Curso de Noções de Administração para Concurso IBGE
Curso de Noções de Administração para Concurso IBGE Curso de Noções de Administração para Concurso IBGE
Curso de Noções de Administração para Concurso IBGE
Estratégia Concursos
 
PARADIGMAS_LINGUAGENS_PROG_aula01.pdf
PARADIGMAS_LINGUAGENS_PROG_aula01.pdfPARADIGMAS_LINGUAGENS_PROG_aula01.pdf
PARADIGMAS_LINGUAGENS_PROG_aula01.pdf
Athena542429
 
Apresentação - P5
Apresentação - P5Apresentação - P5
Apresentação - P5
Luciana C. L. Silva
 
(ACH2002) Introdução à Análise de Algoritmos - Aula 01
(ACH2002) Introdução à Análise de Algoritmos - Aula 01(ACH2002) Introdução à Análise de Algoritmos - Aula 01
(ACH2002) Introdução à Análise de Algoritmos - Aula 01
Norton Trevisan Roman
 
At1
At1At1
Curso de governanca de ti
Curso de governanca de tiCurso de governanca de ti
Curso de governanca de ti
Alex Villaverde
 
Curso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJCurso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJ
Estratégia Concursos
 
Curso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - InspetorCurso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - Inspetor
Estratégia Concursos
 
Apresentacao introducao digital_2012 (1) - cópia
Apresentacao introducao digital_2012 (1) - cópiaApresentacao introducao digital_2012 (1) - cópia
Apresentacao introducao digital_2012 (1) - cópia
Telma da Silva Barbosa
 
Curso Engenharia de Software p/ Concurso Dataprev
Curso Engenharia de Software p/ Concurso DataprevCurso Engenharia de Software p/ Concurso Dataprev
Curso Engenharia de Software p/ Concurso Dataprev
Estratégia Concursos
 
Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...
Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...
Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...
Roberto Lotufo
 
As 7 ferramentas_da_qualidade
As 7 ferramentas_da_qualidadeAs 7 ferramentas_da_qualidade
As 7 ferramentas_da_qualidade
institutocarvalho
 

Semelhante a ed_aula01.pdf (20)

PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
 
Uma introdução à mineração de informações
Uma introdução à mineração de informaçõesUma introdução à mineração de informações
Uma introdução à mineração de informações
 
Aula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTIAula 1 - Conceitos de TI e PDTI
Aula 1 - Conceitos de TI e PDTI
 
Como fazer um trabalho escolar em ppt 4 c
Como fazer um trabalho escolar em ppt 4 cComo fazer um trabalho escolar em ppt 4 c
Como fazer um trabalho escolar em ppt 4 c
 
Sistemas de Informação
Sistemas de InformaçãoSistemas de Informação
Sistemas de Informação
 
Info aula 00 - conceito de internet
Info   aula 00 - conceito de internetInfo   aula 00 - conceito de internet
Info aula 00 - conceito de internet
 
Aulas-Engenharia-de-Metodos-Anhanguera.pptx
Aulas-Engenharia-de-Metodos-Anhanguera.pptxAulas-Engenharia-de-Metodos-Anhanguera.pptx
Aulas-Engenharia-de-Metodos-Anhanguera.pptx
 
(Transformar 16) Planejamento Estratégico 5
(Transformar 16) Planejamento Estratégico 5(Transformar 16) Planejamento Estratégico 5
(Transformar 16) Planejamento Estratégico 5
 
Curso de Noções de Administração para Concurso IBGE
Curso de Noções de Administração para Concurso IBGE Curso de Noções de Administração para Concurso IBGE
Curso de Noções de Administração para Concurso IBGE
 
PARADIGMAS_LINGUAGENS_PROG_aula01.pdf
PARADIGMAS_LINGUAGENS_PROG_aula01.pdfPARADIGMAS_LINGUAGENS_PROG_aula01.pdf
PARADIGMAS_LINGUAGENS_PROG_aula01.pdf
 
Apresentação - P5
Apresentação - P5Apresentação - P5
Apresentação - P5
 
(ACH2002) Introdução à Análise de Algoritmos - Aula 01
(ACH2002) Introdução à Análise de Algoritmos - Aula 01(ACH2002) Introdução à Análise de Algoritmos - Aula 01
(ACH2002) Introdução à Análise de Algoritmos - Aula 01
 
At1
At1At1
At1
 
Curso de governanca de ti
Curso de governanca de tiCurso de governanca de ti
Curso de governanca de ti
 
Curso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJCurso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJ
 
Curso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - InspetorCurso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - Inspetor
 
Apresentacao introducao digital_2012 (1) - cópia
Apresentacao introducao digital_2012 (1) - cópiaApresentacao introducao digital_2012 (1) - cópia
Apresentacao introducao digital_2012 (1) - cópia
 
Curso Engenharia de Software p/ Concurso Dataprev
Curso Engenharia de Software p/ Concurso DataprevCurso Engenharia de Software p/ Concurso Dataprev
Curso Engenharia de Software p/ Concurso Dataprev
 
Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...
Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...
Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...
 
As 7 ferramentas_da_qualidade
As 7 ferramentas_da_qualidadeAs 7 ferramentas_da_qualidade
As 7 ferramentas_da_qualidade
 

Último

APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Biologia - Jogos da memória genetico.pdf
Biologia - Jogos da memória genetico.pdfBiologia - Jogos da memória genetico.pdf
Biologia - Jogos da memória genetico.pdf
Ana Da Silva Ponce
 
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Luana Neres
 
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdfEJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
Escola Municipal Jesus Cristo
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
enpfilosofiaufu
 
LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...
LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...
LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...
ssuser701e2b
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
Manuais Formação
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
WelidaFreitas1
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
sthefanydesr
 
Memorial do convento slides- português 2023
Memorial do convento slides- português 2023Memorial do convento slides- português 2023
Memorial do convento slides- português 2023
MatildeBrites
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
Mary Alvarenga
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
jbellas2
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir"  - Jorge e MateusAtividade - Letra da música "Tem Que Sorrir"  - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Mary Alvarenga
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
LucianaCristina58
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
MateusTavares54
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
ReinaldoSouza57
 
livro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdf
livro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdflivro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdf
livro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdf
Escola Municipal Jesus Cristo
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
ValdineyRodriguesBez1
 

Último (20)

APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Biologia - Jogos da memória genetico.pdf
Biologia - Jogos da memória genetico.pdfBiologia - Jogos da memória genetico.pdf
Biologia - Jogos da memória genetico.pdf
 
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
 
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdfEJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
 
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdfCaderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
Caderno de Resumos XVIII ENPFil UFU, IX EPGFil UFU E VII EPFEM.pdf
 
LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...
LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...
LIBRO LAS MANOS NO SON PARA PEGAR-MAESTRA EN PREESCOLAR_organized_rotated (1)...
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
 
Egito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdfEgito antigo resumo - aula de história.pdf
Egito antigo resumo - aula de história.pdf
 
Memorial do convento slides- português 2023
Memorial do convento slides- português 2023Memorial do convento slides- português 2023
Memorial do convento slides- português 2023
 
Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir"  - Jorge e MateusAtividade - Letra da música "Tem Que Sorrir"  - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
 
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx- TEMPLATE DA PRATICA - Psicomotricidade.pptx
- TEMPLATE DA PRATICA - Psicomotricidade.pptx
 
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - AlfabetinhoAtividades de Inglês e Espanhol para Imprimir - Alfabetinho
Atividades de Inglês e Espanhol para Imprimir - Alfabetinho
 
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptxA dinâmica da população mundial de acordo com as teorias populacionais.pptx
A dinâmica da população mundial de acordo com as teorias populacionais.pptx
 
livro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdf
livro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdflivro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdf
livro da EJA - 2a ETAPA - 4o e 5o ano. para análise do professorpdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
 

ed_aula01.pdf

  • 1. ESTRUTURA DE DADOS Prof. Dr. Daniel Caetano 2012 - 2 INTRODUÇÃO ÀS ESTRUTURAS DE DADOS
  • 2. Objetivos • Conhecer o professor e o curso • Importância do ENADE • Compreender o que são estruturas de dados e sua importância • Implementar funções
  • 6. Quem É Quem – Lista de Presença Nome Completo CPF Matrícula Fulano 012.345.678-90 201101123456 Beltrano 012.345.678-91 201101123457 Cicrano 012.345.678-92 201101123458 Professor Informações de Contato Daniel Caetano prof@caetano.eng.br
  • 8. Plano de Ensino Disponível no WebAula 1. Entre no SIA 2. CAMPUS VIRTUAL 3. MINHAS DISCIPLINAS PRESENCIAIS 4. Clique no NOME DA DISCIPLINA 5. Selecione PLANO DE ENSINO
  • 9. Plano de Aula • 20/07 – 1. Apres. / Funções • 27/07 – 2. Vetores: Listas • 03/08 – 3. Listas: Ordenação • 10/08 – 4. Listas: Ordenação • 17/08 – 5. Pilhas • 24/08 – 6. Pilhas • 31/08 – 7. Filas / P0 • 07/09 – FERIADO • 14/09 – 8. Filas Circulares • 21/09 – 9. Estruturas / Pointers • 28/09 – 10. Listas Encad. / P1 • 05/10 – 11. Pilhas Encadeadas • 12/10 – FERIADO • 19/10 – 12. Filas Encadeadas • 26/10 – 13. Lista Circ. Encadeada • 02/11 – FERIADO • 09/11 – 14. Lista Duplam. Encad. • 16/11 – 15. Lista Duplam. Encad. • 23/11 – 16. Revisão Geral • 30/11 – P2 • 07/12 – Revisão de Nota - P2 • 14/12 – P3
  • 11. Qualidade de Ensino - ENADE • Vocês sabem o que é o ENADE? http://www.enade.estacio.br/ • Qual a nota da instituição? • E a nota do curso? • E qual nota você quer para você? Vamos melhorar cada vez mais!
  • 12. Trabalhos, Datas e Aprovação Trabalho Valor C.H. Entrega AE1 (Grupo / Individual) 1,0 na AV1 8h 19/08 (SIA) P0 (Individual / Com Consulta*) 1,0 na AV1 1h 31/08 (Aula) AE2 (Grupo / Individual) 1,0 na AV1 8h 02/09 (SIA) AE3 (Grupo / Individual) 2,0 na AV1 8h 23/09 (SIA) P1 (Individual / Com Consulta*) 6,0 na AV1 2h 28/09 (Aula) AE4 (Grupo / Individual) 1,0 na AV2 8h 07/10 (SIA) AE5 (Grupo / Individual) 1,0 na AV2 8h 28/10 (SIA) AE6 (Grupo / Individual) 2,0 na AV3 8h 18/11 (SIA) P2 (Individual / Sem Consulta) 8,0 na AV2 2h 30/11 (Aula) P3 (Individual / Sem Consulta) 8,0 na AV3 2h 14/12 (Aula) (*) Consulta nos moldes da folha de referência fornecida no site da disciplina.
  • 13. Trabalhos, Datas e Aprovação • Atenção ao prazo de entrega das AE1 a AE6... • As Atividades Estruturadas serão entregues pelo SIA e serão penalizadas em 0,4 ponto por dia de atraso. • Mesmo que já não valham nota, elas precisam ser entregues, pois valem parte significativa da carga-horária! • As atividades são grandes, não marque bobeira!
  • 14. Trabalhos, Datas e Aprovação – AV1 • Se fizer as provas P0 e P1 à caneta, incluindo o preenchimento completo do cabeçalho, ganha: 0,1 na P0 e 0,25 na P1 • Entregando a folha de consulta (dentro do padrão) com a prova, ganha: 0,1 na P0 e 0,25 na P1 • As notas da P0 e das AE1 a AE3 serão somadas à nota da prova P1 para compor a média AV1. AV1 = P0 + P1 + AE1a3 0,0 a 6,0 0,0 a 4,0 0,0 a 10,0 0,0 a 1,0
  • 15. Trabalhos, Datas e Aprovação – AV2 • A nota das AE4 e AE5 (total de 0 a 2) será somada à nota da P2 para compor a nota AV2. AV2 = AE4e5 + P2 0,0 a 8,0 0,0 a 10,0 0,0 a 2,0
  • 16. Trabalhos, Datas e Aprovação – AV3 • A nota da AE6 (de 0 a 2,0) será somada à nota da prova P3 para compor a média AV3. AV3 = P3 + AE6 0,0 a 8,0 0,0 a 2,0 0,0 a 10,0
  • 17. Trabalhos, Datas e Aprovação – Final A = Maior nota entre { AV1 , AV2 , AV3 } B = Segunda maior nota entre { AV1 , AV2 , AV3 } Critérios de Aprovação (TODOS precisam ser atendidos) 1) A ≥ 4,0 2) B ≥ 4,0 3) A + B ≥ 12,0 (Média 6,0!) 4) Frequência ≥ 75% (No máximo 4faltas!) ATENÇÃO: Se você tiver mais que uma nota abaixo de 4,0, ainda que o SIA aponte uma média maior que 6,0, você estará REPROVADO!
  • 18. Relação entre Faltas e Reprovação • Todos os semestres: alta correlação – Mais faltas: piores médias • Média Presentes / Média Faltantes > 1.5 • AV3 e Reprovações: – 4 ou mais faltas: por volta de 90% – Menos que 4 faltas: por volta de 50% – Menos que 2 faltas: por volta de 20%
  • 19. BIBLIOGRAFIA E FONTES DE INFORMAÇÃO
  • 20. Bibliografia • Biblioteca Virtual – Estrutura de Dados • Material do Curso – Estrutura de Dados – Série Livros Didáticos Informática da UFRGS, Volume 18 (1ª Edição, 2009) • Edelweiss e Galante • Artmed / Bookman • ISBN: 9788577803811
  • 21. Bibliografia • Mais Livros! – Estrutura de Dados: algoritmos, análise da complexidade e implementações em Java e C/C++ (1ª Edição, 2011) • Ascêncio e Araújo • Editora Pearson Education • ISBN: 9788576058816 BIBLIOTECA VIRTUAL! – Lógica de Programação: a construção de algoritmos e estruturas de dados (3ª Edição, 2005) • Forbellone e Eberspacher • Editora Pearson • ISBN: 9788576050247 BIBLIOTECA VIRTUAL!
  • 22. Material Didático Deve Ser Solicitado no SIA 1. Entre no SIA 2. SECRETARIA VIRTUAL 3. SOLICITAÇÃO DE MATERIAL
  • 23. Bibliografia • Notas de Aula e Apresentações http://www.caetano.eng.br/
  • 25. Pesquisa Científica • Desenvolvedor pesquisa? • Carreira Acadêmica x Mercado – São excludentes? • Como iniciar na pesquisa? – Iniciação Científica – Desenvolver: • Habilidade de Pesquisa • Aplicação de Conceitos à Prática • Estimulo à Curiosidade Científica • Desenvolver portfolio
  • 26. Iniciação Científica • O que eu ganho com isso? – Experiência – Diferencial profissional – Bolsa de estudos de até 30%* • Eu quero participar... – Como eu faço? → http://www.caetano.eng.br/
  • 28. Formação de Grupos • Por que formar grupos? • Quantos alunos? – No mínimo 4 alunos – No máximo 8 alunos • Entregar, na aula que vem, lista de NOMES de cada aluno, indicando o NOME DA EQUIPE. • Atenção: – Elejam UM responsável por subir os dados no SIA, que deve fornecer o e-mail para o professor!
  • 29. VOLTANDO À PROGRAMAÇÃO NORMAL: CONTEXTUALIZAÇÃO
  • 30. Contextualização • Continuação de Algoritmos – Qual a melhor forma de implementar? • Relação Disciplina x Curso – Desenvolvimento de Software – Análise / Projeto de Software – Sistemas Operacionais – Banco de Dados • Empregabilidade? – Criatividade e senso critico – Domínio da programação
  • 32. Estrutura de Dados • Programa = Algoritmo + Dados • Resolução de Problema: abstração • Cadastro de Clientes – Quais dados são importantes? • A idade do cliente é importante? • A cor do cabelo do cliente é importante? – Qual o algoritmo usar? • Como encontrar um cliente? • Como inserir um novo cliente?
  • 33. Estrutura de Dados • Programa = Algoritmo + Dados • Resolução de Problema: abstração • Cadastro de Clientes – Quais dados são importantes? • A idade do cliente é importante? • A cor do cabelo do cliente é importante? – Qual o algoritmo usar? • Como encontrar um cliente? • Como inserir um novo cliente?
  • 34. Estrutura de Dados • O que é um “dado digital”? • O que o diferencia de “lixo digital”? • Sua organização – Sabemos como encontrá-los • E isso permite... – Busca – Remoção – Inserção... • Organização → Desempenho
  • 36. Estrutura de Dados no Dia-a-Dia • Representar a organização de uma empresa – 1 presidente, 1 vice-presidente, 1 diretor de vendas e 1 de criação, este último com 2 subdiretores? Presidente Vice- Presidente Diretor de Vendas Diretor de Criação Subdiretor 1 Subdiretor 2
  • 37. Estrutura de Dados no Dia-a-Dia • Como representar a bibliografia do curso? – Estrutura de Dados: algoritmos, análise da complexidade e implementações em Java e C/C++ – Lógica de Programação: a construção de algoritmos e estruturas de dados – Estrutura de Dados – Série Livros Didáticos Informática da UFRGS, Volume 18
  • 38. Estrutura de Dados no Dia-a-Dia • Como o motoboy organiza as pizzas?
  • 39. Estrutura de Dados no Dia-a-Dia • Como as pessoas esperam no banco?
  • 40. Estrutura de Dados no Dia-a-Dia • Como representar os trajetos possíveis em uma companhia aérea?
  • 42. Tipos de Estrutura de Dados • Lineares x Não-lineares • Lineares
  • 43. Tipos de Estrutura de Dados • Lineares x Não-lineares • Lineares • 1º. Elemento bem definido • Último elemento bem definido • Elementos intermediários: um antecessor e um sucessor
  • 44. Tipos de Estrutura de Dados • Não-lineares Presidente Vice- Presidente Diretor de Vendas Diretor de Criação Subdiretor 1 Subdiretor 2 • Árvore: relação hierárquica • Grafo: relação qualquer
  • 45. Tipos de Estrutura de Dados • Não-lineares Presidente Vice- Presidente Diretor de Vendas Diretor de Criação Subdiretor 1 Subdiretor 2 • Árvore: relação hierárquica • Grafo: relação qualquer É fundamental identificar a melhor estrutura para cada problema!
  • 47. Armazenamento de Estruturas • Duas maneiras de armazenar – Sequencial (ou contígua) • Espaço pré-alocado • Tamanho pré-definido – Encadeada (ou ligada) • Tamanho inicialmente desconhecido • Alocação à medida da necessidade • Neste curso – Estruturas lineares sequenciais e encadeadas
  • 48. Armazenamento de Estruturas • Iniciaremos com as sequenciais... • Qual o tipo de variável de C/C++ que serve para guardar, sequencialmente, muitos dados iguais? – Vetores • Vamos começar com uma lista de números – Que operações vocês conseguem imaginar? – O que gostaríamos de poder fazer com uma lista?
  • 49. Manipulação de Estruturas • Imagine uma lista de notas – Inicialmente vazia • Inserir notas • Remover notas • Buscar notas... • Como realizar essas tarefas? • Existiria muita diferença se tivéssemos uma lista de alunos? Ou uma lista de rendimentos?
  • 50. Manipulação de Estruturas • Inserir, Remover e Buscar serão semelhantes para qualquer lista • Sempre que precisarmos inserir, o código é 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
  • 51. Manipulação de Estruturas • Esses “algoritmos” com nome recebem o nome de funções • Antes de estudarmos as estruturas em si... – Vamos aprender a implementar funções!
  • 53. Funções • Funções pré-definidas – abs(x) – O que fazer se a função abs(x) não existisse? int x; x = -4; cout << “O valor absoluto de ”; cout << x << “ = ”; cout << abs(x) << endl;
  • 54. Funções • abs “na raça”: • Se tivéssemos de usar isso toda hora...? – O que fazer? – Copiar e colar? int x; x = -4; cout << “O valor absoluto de ”; cout << x << “ = ”; if (x >= 0) cout << x << endl; else cout << -x << endl;
  • 55. Funções • abs “na raça”: • Se tivéssemos de usar isso toda hora...? – O que fazer? – Copiar e colar? int x; x = -4; cout << “O valor absoluto de ”; cout << x << “ = ”; if (x >= 0) cout << x << endl; else cout << -x << endl; Que tal criar nosso próprio abs?
  • 57. Criando Funções • Passo 1: criar um programa que calcule o perímetro de um círculo de raio 2 – P = 2∙∏∙R – ∏ = 3,141592
  • 58. Criando Funções • Passo 2: transformar o cálculo em uma função chamada calcula
  • 59. Criando Funções • Passo 2: transformar o cálculo em uma função chamada calcula – As variáveis criadas dentro da função só existem dentro desta função – Elas são chamadas variáveis locais – Não é possível acessar uma variável local a não ser de dentro da própria função – Os valores das variáveis locais são destruídos quando a função finaliza
  • 60. Criando Funções • Passo 3: modificar a função calcula para que ela para que ela retorne o resultado, ao invés de imprimi-lo
  • 61. Criando Funções • Passo 3: modificar a função calcula para que ela para que ela retorne o resultado, ao invés de imprimi-lo – return deve sempre retornar um valor do tipo correto – return pode ser usado sem nenhum valor em funções cujo retorno é do tipo “void”
  • 62. Criando Funções • Passo 4: modificar a função calcula para que ela receba o raio do círculo como parâmetro
  • 63. Criando Funções • Passo 4: modificar a função calcula para que ela receba o raio do círculo como parâmetro – Os parâmetros funcionam como variáveis locais – O valor fornecido como parâmetro (o raio) é copiado para essa “variável local”
  • 64. Criando Funções • Passo 5: modificar a função calcula para que ela retorne, além do perímetro da circunferência, também a área do círculo e o volume da esfera – A = ∏∙R2 – V = (4/3) ∙∏∙R3
  • 65. Criando Funções • Passo 5: modificar a função calcula para que ela retorne, além do perímetro da circunferência, também a área do círculo e o volume da esfera – A = ∏∙R2 – V = (4/3) ∙∏∙R3 – Parâmetros cujo nome é precedido por & são passados “por referência”, isto é, podem ser modificados na função
  • 66. Criando Funções • Passo 6: mova a função para o fim do arquivo
  • 67. Criando Funções • Passo 6: mova a função para o fim do arquivo – A declaração inicial é chamada “protótipo de função”
  • 69. Variáveis Globais • Variáveis das funções: locais • Passar dados: parâmetros • Receber respostas: return, parâm. por ref. • Não há um jeito diferente? • Sim: Variáveis globais – Declarar variável junto com os protótipos das funções – Cuidado! – Problemas! • Exemplo
  • 71. Exercícios de Fixação 1) Qual a melhor estrutura de dados para representar o sistema de pastas e arquivos do sistema operacional? a) Pilha b) Fila c) Árvore d) Grafo
  • 72. Exercícios de Fixação 2) Os navegadores web armazenam as páginas visitadas de maneira que ao apertar o botão “voltar” a última página visitada seja apresentada, retirando este endereço da estrutura. Considerando só esse aspecto, qual é a melhor estrutura de dados? a) Pilha b) Fila c) Árvore d) Lista
  • 73. Exercícios de Fixação 3) Faça uma função em C/C++ que calcule a área de um retângulo e tenha o seguinte protótipo: double calculaArea1(double base, double altura); Depois construa a main que usa essa função
  • 74. Exercícios de Fixação 4) Faça uma função em C/C++ que calcule a área de um retângulo e tenha o seguinte protótipo: void calculaArea2(double base, double alt, double &area); Depois construa a main que usa essa função
  • 76. Resumo • Planos de Ensino e Aula • Datas de avaliações e critérios de aprovação • Fontes de informação • O que são dados e estrutura de dados • Operações e usos comuns de estrutura de dados • Implementação de funções • TAREFA PARA PRÓXIMA AULA – Formar os Grupos dos Trabalhos
  • 77. Próxima Aula • Listas Lineares Sequenciais... –Como implementar isso? –Funções e Vetores!