|
|
(14 revisões intermediárias por 4 usuários não estão sendo mostradas) |
Linha 1: |
Linha 1: |
| =Plano de ensino=
| | '''Semestre''': 2º |
| ==1. IDENTIFICAÇÃO==
| | =Objetivo= |
| '''Curso''': Tecnologia em Análise e Desenvolvimento de Sistemas
| |
| | |
| '''Componente Curricular''': Estruturas de Dados
| |
| | |
| '''Professor''': Estevan Braz Brandt Costa
| |
| | |
| '''Turma''': 01/2015
| |
| | |
| '''Período Letivo''': Segundo
| |
| | |
| '''Ano:''' 2015
| |
| | |
| '''Carga horária''': 72 | |
| | |
| '''Horário Semanal de Atendimento ao Estudante:''' Determinar Data | |
| | |
| ==2. EMENTA==
| |
| Introdução a estruturas de dados. Estruturas estáticas e dinâmicas. Registros. Ponteiros. Listas encadeadas. Pilhas. Filas. Recursividade. Árvores. Balanceamento. Hashes. Métodos de busca e ordenação de vetores.
| |
| | |
| ==3. CONTEÚDO PROGRAMÁTICO==
| |
| | |
| | |
| ==4. OBJETIVOS DO COMPONENTE CURRICULAR==
| |
| Possibilitar ao aluno o entendimento das técnicas de organização de dados heterogêneos, em relação à eficiência de ocupação de espaço de armazenamento, velocidade de armazenamento e de acesso aos dados, bem como complexidade de codificação. | | Possibilitar ao aluno o entendimento das técnicas de organização de dados heterogêneos, em relação à eficiência de ocupação de espaço de armazenamento, velocidade de armazenamento e de acesso aos dados, bem como complexidade de codificação. |
| | =Ementa= |
| | Introdução a estruturas de dados; estruturas estáticas e dinâmicas; registros; ponteiros; listas encadeadas; pilhas; filas; recursividade; árvores; balanceamento; hashes; métodos de busca e ordenação de vetores. |
|
| |
|
| ==5. PROCEDIMENTOS METODOLÓGICOS== | | =Planos de ensino= |
| ===Metodologia de ensino===
| | * [[Media:Plano-ensino-estruturas-2016.2.pdf | 2016/2]] (Prof. Júlio César Royer) |
| * Aulas expositivas em laboratório de informática com projetor.
| | * [[TADS:Estruturas de dados (2015-2)|2015/2]] (Prof. Estevan Braz Brandt Costa) |
| * Uso de ambiente de programação para desenvolvimento das atividades
| | * [[TADS:Estrutura de Dados: 2014-2|2014/2]] (Prof. [[Usuário:Evandro.cantu | Evandro Cantú]]) |
| * Uso do computador para em laboratório para exemplificação dos conteúdos didáticos
| |
| | |
| ===Recursos e materiais===
| |
| * Aulas expositivas empregando: quadro, multimídia; | |
| * Seminários para apresentação de trabalhos;
| |
| * Trabalhos individuais e/ou grupo;
| |
| * Exercícios em sala de aula.
| |
| | |
| ==6. AVALIAÇÃO==
| |
| Trabalhos individuais e/ou grupo;
| |
| | |
| Apresentação de seminários;
| |
| | |
| Provas bimestrais individuais;
| |
| | |
| Participação em sala.
| |
| | |
| ==REFERÊNCIAS BIBLIOGRÁFICAS==
| |
| ==REFERÊNCIAS BÁSICAS==
| |
| #ZIVIANI, Nívio. Projeto de algoritmos com implementações em Pascal e C. 3ª ed., Cengage Learning, 2010.
| |
| #PEREIRA, Sílvio do Lago. Estruturas de dados fundamentais: conceitos e aplicações. 8ª ed., Erica, 1996.
| |
| #ESZWARCFITER, Jaime Luis, MARKENZON, Lilian. Estruturas de dados e seus algoritmos. 3ª ed., LTC, 2010.
| |
| #FEOFILOFF, Paulo. Algoritmos em linguagem C. 23ª ed., Campus, 2009.
| |
| #AGUILAR, Luis Joyannes. Programação em C++: algoritmos, estruturas de dados e objetos. 2ª ed., Bookmann, 2008.
| |
| | |
| ==REFERÊNCIAS COMPLEMENTARES==
| |
| #[[Mídia:EstruturaDadosC.pdf | TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe. Estruturas de dados usando C. Makron Books, 1995.]]
| |
| #EDELWEISS, Nina; GALANTE, Renata. Estruturas de dados. Bookman, 2009.
| |
| #GOODRICH, Michael T.; TAMASSIA, Roberto. Estruturas de dados e algoritmos em java. 4ª ed., Bookman, 2007.
| |
| #ASCENCIO, Ana Fernanda Gomes. Estruturas de dados. Pearson, 2011.
| |
| #LAFORE, Robert. Estruturas de dados e algoritmos em Java. Ciência Moderna, 2005.
| |
| # GONÇALVES, Edson. Dominando Java Server Faces e Facelets Utilizando Spring 2.5, Hibernate e JPA. Ciência Moderna, 2008.
| |
| | |
| | |
| ==MATERIAIS DE APOIO==
| |
| *[http://www.mtm.ufsc.br/~azeredo/cursoC/c.html Curso: '''Linguagem C''']
| |
| *[http://homepages.dcc.ufmg.br/~joaoreis/Site%20de%20tutoriais/c_int/index.htm Curso: '''C Intermediário''']
| |
| *[[Mídia:LinguagemC.pdf | KERNIGHAN, B.W.; RITCHIE, D.M. The C Programming Language, Prentice Hall, 2<sup>o</sup> ed. 1978.]]
| |
| *[http://aurelio.net/curso/material/vim-ref.html '''Editor VI''' - Guia de Referência]
| |
| | |
| =Diários de Aula=
| |
| | |
| *[[TADS:Estrutura de Dados: 2015-2]]: Estevan Costa <estevan.costa@ifpr.edu.br> | |
| *[[TADS:Estrutura de Dados: 2014-2]]: Evandro Cantú <evandro.cantu@ifpr.edu.br>
| |
| | |
| ===29/fev===
| |
| Trabalho de Estruturas de Dados
| |
| | |
| - Criar um cadastro de pessoas que tenham as seguintes informações: Nome, idade, peso e altura.
| |
| | |
| - O sistema deve permitir a pessoa cadastrar, pesquisar, mostrar todos e excluir uma pessoa.
| |
| | |
| - A estrutura utilizada deve ser uma tabela hash, tamanho 17.
| |
| | |
| - O cálculo do hash deve levar em conta o nome, idade, peso e altura. A forma como eles se relacionam fica a cargo do aluno, porém é preciso utilizar todos os valores. (exemplo: nome + idade + peso + altura)
| |
| | |
| - Entregar o trabalho até dia 29/02
| |
| - Individual
| |
| - Entregar por e-mail para estevan.costa@ifpr.edu.br
| |
| - Assunto no e-mail: Trabalho ED 2902
| |
| - Arquivos do trabalho compactados em um arquivo com seu nome completo
| |
| - Apresentar o trabalho dia 29/02 para o professor, em sala de aula.
| |
| | |
| ===27/fev===
| |
| Fazer trabalho / lista de exercícios do URI.
| |
| | |
| ===24/fev===
| |
| | |
| <syntaxhighligh lang="c">
| |
| #include<stdio.h>
| |
| int tohash(char nome[50], int tamanho);
| |
| | |
| typedef struct elemento{
| |
| char nome[50];
| |
| struct elemento *prox;
| |
| } elemento;
| |
| | |
| int main()
| |
| {
| |
| elemento inicio[10];
| |
| elemento novo;
| |
| scanf("%s", novo->nome);
| |
| int posicao = tohash(novo->nome, 10);
| |
| inicio[posicao] = novo;
| |
| | |
| }
| |
| | |
| int tohash(char nome[50], int tamanho)
| |
| {
| |
| int total = 0, i;
| |
| for(i=0; nome[i]!= '\0'; i++)
| |
| {
| |
| total += (nome[i] * 251);
| |
| }
| |
| return total %tamanho;
| |
| | |
| }
| |
| | |
| </syntaxhighligh>
| |
| | |
| ===22/fev===
| |
| | |
| ===17/fev===
| |
| | |
| Os exercícios deverão ser realizados considerando uma "árvore base", que será passada em sala de aula, e valores sobre características pessoais. Ao entregar as respostas, coloque junto de cada letra o valor utilizado. Trabalho Individual, e para entregar em sala, no dia 17.
| |
| | |
| Valores Próprios:
| |
| | |
| A - Idade (em anos):
| |
| B - Dia do Nascimento:
| |
| C - Mês do Nascimento * 2:
| |
| D - Ano do Nascimento / 100 (exemplo: 1985 / 100 => 19,85 => 19):
| |
| E - Peso sem casa decimal:
| |
| F - Últimos 2 digitos da altura (exemplo 1,84 -> 84):
| |
| G - Número do seu calçado:
| |
| H - Número de Irmãos que possui:
| |
| | |
| Caso algum valor próprio se repita, ou o valor já exista na árvore base, adicione 1 até ficar um valor único.
| |
| Após determinar os números acima, e considerando a árvore base, faça:
| |
| | |
| 1) Inserir os elementos na seguinte ordem: A, B, C, D, E, F, G, H. Depois, excluir os elementos na seguinte ordem: 50, 25, 75.
| |
| | |
| 2) Inserir os elementos na seguinte ordem: B, D, F, H, A, C, E, G. Depois, excluir os elementos na seguinte ordem: 75, 25, 50
| |
|
| |
| 3) Inserir os elementos na seguinte ordem: A, B, C, D, H, G, F, E. Depois, escrever o resultado quando realizado o caminhamento In-Ordem, Pós-Ordem e Pré-Ordem.
| |
|
| |
| 4) Inverter o sinal de TODOS os valores (tanto da árvore base, quanto da árvore, quanto dos valores pessoais) e reinserir os valores na seguinte ordem: -50, -25, -75, -5, -37, -63, -100, -A, -B, -C, -D, -E, -F, -G, -H.
| |
| | |
| ===15/fev===
| |
| *[[TADS:Estrutura de Dados: codigos1502]]: Árvore com Menu! | |
| | |
| Exercício:
| |
| De acordo com a legislacão javaiana, um servidor público pode ter até 2 funcionários trabalhando para ele. Cada um destes funcionários pode ter outros 2 funcionários, e assim por diante. Crie um sistema que faca o seguinte:
| |
| | |
| 1- Guarde os seguintes dados dos funcionários:código, nome, salario, custo para o governo. O nome é o nome do funcionário. O código é um número inteiro que ajuda a identificar a pessoa dentro do congresso (este número é único). O salário é quanto ele ganha (em R$), e o custo para o governo é a somatória do salário de todos os funcionários que trabalham para ele, mais seu próprio salário.
| |
| | |
| 2- Será utilizado o campo da código para realizar a ordenacão dos elementos. | |
| | |
| 3- O sistema deve permitir a pessoa digitar o código e o sistema informar os dados do funcionário, bem como o código e o nome de todos os seus subordinados. Além disso, o sistema deve mostrar quem é o chefe dele.
| |
| | |
| 4- Se a pessoa A é funcionário de B, e B é funcionário de C, então A também é funcionário de C.
| |
| | |
| Entregar até dia 21/02, via e-mail, com Assunto (Trabalho ED Arvore Binária), e com seu nome no arquivo (pode ser seu nome na pasta).
| |
| | |
| ===10/fev===
| |
| *[[TADS:Estrutura de Dados: codigos1002]]: Árvore de Busca Binária com Insercão
| |
| | |
| ===06/fev===
| |
| *[[TADS:Estrutura de Dados: codigos0602]]: Códigos Para uso em sala
| |
| | |
| ===03/fev===
| |
| *[[TADS:Estrutura de Dados: Exercicio0302]]: Exercícios de fixação>
| |
| | |
| ===16/dez===
| |
| *[[Mídia:exemplostruct.zip | Exemplo de Uso do Struct]]
| |
| *[[Mídia:bubblequick.zip | Bubble Sort e Quick Sort]]
| |
| *[[Mídia:binariaemerge.zip | Busca Binária e Merge Sort]]
| |
| | |
| ===09/dez===
| |
| Apresentação da Lista Duplamente Encadeada e Lista Duplamente Encadeada Circular
| |
| Códigos feitos na sala de aula, de uma lista encadeada, todo comentado
| |
| *[[Mídia:LE0912.zip | Exemplo Lista Encadeada]]
| |
| Exercício de Avaliacão para Entregar dia 23/12.
| |
| *[[Mídia:segundaprova.zip | Trabalho de Avaliação]]
| |
| | |
| ===07/dez===
| |
| Reforço de Lista Encadeada. Demonstração da lista circular.
| |
| Exercício de Reforço para Entregar dia 21/12
| |
| *[[Mídia:RecuperacaoLista.odt | Exercício de Recuperação]]
| |
| | |
| ===21/out===
| |
| Estrutura de dados Fila.
| |
| *[[Mídia:CodigoFila.zip | Exemplo de Fila]]
| |
| | |
| ===19/out===
| |
| Estrutura de dados Pilha.
| |
| *[[Mídia:CodigoPilha.zip | Exemplo de Pilha]]
| |
| | |
| ===14/out===
| |
| *[http://latinoware.org/ Evento: '''Latinoware''']
| |
| | |
| ===07/out===
| |
| Revisão de desenvolvimento em C (Utilização de structs, formas de se embaralhar elementos em um mesmo vetor).
| |
| | |
| ===30/set===
| |
| Apresentação da disciplina.
| |
|
| |
| Revisão de desenvolvimento em C (Utilização de Vetores e estruturas de repetição).
| |
|
| |
|
| | ---- |
|
| |
|
| [[Categoria:TADS]] | | [[Categoria:TADS]] |