Você está na página 1de 26

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

PONTIFCIA UNIVERSIDADE CATLICA DE MINAS PUC - DCC - ALGORITMOS E TCNICAS DE PROGRAMAO II

NDICE Proposta para cronograma Bibliografia recomendada Parte terica Parte prtica Proposta para a distribuio de aulas Proposta de critrio de avaliao 01. Tcnicas de programao Objetivos Algoritmo Qualidades de um algoritmo Metodologias para o desenvolvimento de algoritmos Desenvolvimento de algoritmos por diagramas bsicos Estruturas de dados Modularizao Depurao e validao Orientao a objetos Recursividade Exerccios propostos 02. Anlise de algoritmos Objetivos Somatrios Propriedades Nmero de termos em uma soma Srie aritmtica Srie geomtrica Polinmio de Bernoulli Probabilidades Propriedades Medida de tempo de execuo de um programa Comportamento assinttico de funes Operaes com a notao O Principais classes de comportamento assinttico Tcnicas de anlise de algoritmos Exerccios propostos 01

23

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

03. Algoritmos fundamentais - Pilhas Objetivos Endereo e alocao de memria Conceito e operaes com pilha Exemplos de utilizao Operaes tpicas com uma pilha Sugesto para implementao em C++ usando memria esttica Definio de uma classe tpica para uma pilha Operaes tpicas com uma pilha Sugesto para implementao em C++ usando memria dinmica Definio de uma classe tpica para uma pilha Operaes tpicas com uma pilha Remoo de recursividade Exerccios propostos 04. Algoritmos fundamentais - Filas Objetivos Conceito e operaes com fila Exemplos de utilizao Operaes tpicas com uma fila Sugesto para implementao em C++ usando memria esttica Definio de uma classe tpica para uma fila Operaes tpicas com uma fila Sugesto para implementao em C++ usando memria dinmica Definio de uma classe tpica para uma fila Operaes tpicas com uma fila Exerccios propostos 05. Algoritmos fundamentais - Listas Objetivos Conceito e operaes com listas Exemplos de utilizao Operaes tpicas com uma lista Sugesto para implementao em C++ usando memria esttica Definio de uma classe tpica para uma lista Operaes tpicas com uma lista Sugesto para implementao em C++ usando memria dinmica Definio de uma classe tpica para uma lista Operaes tpicas com uma lista Exerccios propostos

50

68

82

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

06. Algoritmos fundamentais - rvores Objetivos Conceitos e operaes com rvores Definies Caractersticas gerais Caractersticas de rvores binrias de pesquisa Exemplos de utilizao Operaes tpicas com uma pilha Implementao em memria esttica Implementao em C++ usando memria dinmica Definio de uma classe tpica para uma rvore Caminhamento Insero em rvore sem balanceamento Anlise da insero Retirada de rvore sem balanceamento rvores balanceadas Exerccios propostos 07. Algoritmos de pesquisa Objetivos Pesquisa seqencial Pesquisa binria rvores de pesquisa Pesquisa digital TRIE rvore digital PATRICIA Transformao de chave (hashing) Mtodos para tratar colises Exerccios propostos 08. Algoritmos de ordenao Objetivos Ordenao interna Mtodo da Bolha Mtodo de Seleo Mtodo de Insero Shellsort Quicksort Heapsort Exerccios propostos ANEXOS Exemplos de programas com orientao a objetos Comandos para entrada-e-sada de dados em C++

105

134

183

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

BIBLIOGRAFIA RECOMENDADA Parte Terica

[01] FORBELONNE, A. L. V. & EBERSPACHER, H. F. Lgica de Programao - A Construo de Algoritmos e Estruturas de Dados. So Paulo: Makron Books, 1993. [02] HOROWITZ, E. & SAHNI, S. Fundamentos de Estruturas de Dados. Rio de Janeiro: Editora Campus, 1986. [03] KERNIGHAM, B. W & PIKE, R. A Prtica da Programao. Rio de Janeiro: Editora Campus, 2000. [04] KNUTH, D. The Art of Computer Programming. London: Addison-Wesley Publishing Company, 1973. [05] LAFORE, Robert. Aprenda em 24 horas: Estrutura de dados e Algoritmos. Rio de Janeiro: Editora Campus, 1999. [06] MORAES, Celso Roberto. Estruturas de dados e Algoritmos - uma abordagem didtica. So Paulo: Berkeley Brasil, 2001. [07] NYHOFF, L. C++: an introduction to data structures, New Jersey: Prentice-Hall, Inc., 1998. [08] PEREIRA, S. L. Estruturas de Dados Fundamentais. So Paulo: Editora rica, 1996. [09] SEDGEWICK, R. Algorithms. London: Addison-Wesley Publishing Company, 1988. [10] SALVETTI, D. D. & BARBOSA, L. M. Algoritmos. So Paulo: Makron Books, 1998. [11] von STAA, A. Engenharia de Programas. Rio de Janeiro: LTC, 1987. [12] von STAA, A. Programao Modular. Rio de Janeiro: Campus, 2000. [13] SWAIT Jr., J. D. Fundamentos Computacionais - Algoritmos e Estruturas de Dados. So Paulo: Makron Books, 1991. [14] SZWAARCFITER, J. L. & MARKENZON, L. Estruturas de Dados e seus Algoritmos. Rio de Janeiro: LTC, 1994.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

[15] TENENBAUM, A. M. & AUGENSTEIN, M. J. Estruturas de Dados usando C. So Paulo: Makron Books, 1995. [16] TERADA, R. Desenvolvimento de Algoritmos e Estruturas de Dados. So Paulo: Makron Books, 1991. [17] VELOSO, P. et alii. Estruturas de Dados. Rio de Janeiro: Editora Campus, 1985. [18] VILLAS, M. V. et alii. Estruturas de Dados - Conceitos e Tcnicas de Implementao. Rio de Janeiro: Campus, 1993. [19] WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro: Editora PrenticeHall do Brasil Ltda., 1989. [20] ZIVIANI, N. Projeto de Algoritmos com Implementao em Pascal e C. So Paulo: Pioneira Informtica, 1993.

BIBLIOGRAFIA RECOMENDADA Parte Prtica

[01] DEITEL, H. M. & DEITEL, P. J. C++ como programar _ Apresentando projeto orientado a objetos com UML, 3 edio, Porto Alegre: Bookman, 2001. [02] DIAS, Adilson de Souza. Desenvolvendo em Borland C++ Builder 5.0 / CD. Editora Cincia Moderna Ltda., 2000. [03] LIBERTY, Jesse. Aprenda C++ em 24 horas. Rio de Janeiro: Editora Campus, 1998. [04] MATEUS, Csar Augusto. C++ Builder 5 - Guia Prtico. So Paulo: Editora rica, 2000. [05] MONTENEGRO, F. & PACHECO, R. Orientao a Objetos em C++. Editora Cincia Moderna Ltda., 1994. [06] MIZRAHI, V. V. Treinamento em Linguagem C++ - Mdulo 1. So Paulo: Makron Books, 1994. [07] MIZRAHI, V. V. Treinamento em Linguagem C++ - Mdulo 2. So Paulo: Makron Books, 1994. [08] STEVENS, A. Aprenda voc mesmo C++. Rio de Janeiro: LTC, 1991.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

PROPOSTA PARA CRONOGRAMA

AULA DATA DISTRIBUIO DE AULAS DE TEORIA 01 05/02 Apresentao da disciplina Metodologia 02 07/02 Introduo - Tcnicas de programao 03 14/02 Metodologias para o desenvolvimento de programas 04 19/02 Algoritmos recursivos 05 21/02 Algoritmos recursivos 06 26/02 Algoritmos recursivos 07 28/02 Tcnicas para a anlise de algoritmos 08 05/03 Tcnicas para a anlise de algoritmos 09 07/03 Tcnicas para a anlise de algoritmos 10 12/03 Estruturas de dados fundamentais Pilhas 11 14/03 Estruturas de dados fundamentais Pilhas 12 19/03 Estruturas de dados fundamentais Pilhas 13 21/03 Estruturas de dados fundamentais Filas 14 02/04 Estruturas de dados fundamentais Filas 15 04/04 Estruturas de dados fundamentais Filas 16 09/04 Estruturas de dados fundamentais Listas 17 11/04 Estruturas de dados fundamentais Listas 18 16/04 Estruturas de dados fundamentais Listas 19 18/04 Estruturas de dados fundamentais Listas 20 23/04 Estruturas de dados fundamentais rvores 21 25/04 Estruturas de dados fundamentais rvores 22 30/04 Estruturas de dados fundamentais rvores 23 02/05 Estruturas de dados fundamentais rvores 24 07/05 Algoritmos de pesquisa 25 09/05 Algoritmos de pesquisa 26 14/05 Algoritmos de pesquisa 27 16/05 Algoritmos de pesquisa 28 21/05 Algoritmos de ordenao 29 23/05 Algoritmos de ordenao 30 28/05 Avaliao 31 04/06 Algoritmos de ordenao 32 06/06 Algoritmos de ordenao 33 11/06 A programar 34 13/06 A programar 68 60 h-a Aulas tericas previstas

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA INCIO 01 04/02 02 14/02 03 18/02 04 25/02 05 04/03 06 11/03 07 18/03 08 01/04 09 08/04 10 15/04 11 22/04 12 29/04 13 06/05 14 13/05 15 20/05 16 27/05 17 03/06 18 10/06 36 30 h-a

FIM 08/02 15/02 22/02 01/03 08/03 15/03 22/03 05/04 12/04 19/04 26/04 03/05 10/05 17/05 24/05 31/05 07/06 14/06

DISTRIBUIO DE AULAS DE LABORATRIO Noes de Programao Orientada a Objetos Exerccios Apresentao do TP-01 Orientao a Objetos Apresentao do TP-02 Orientao a Objetos Apresentao do TP-03 Algoritmos recursivos Apresentao do TP-04 Anlise de algoritmos Apresentao do TP-05 Aplicao de pilha Apresentao do TP-06 Aplicao de pilha Apresentao do TP-07 Aplicao de fila Apresentao do TP-08 Aplicao de listas Apresentao do TP-09 Aplicao de listas Apresentao do TP-10 Aplicao de rvore Apresentao do TP-11 Aplicao de rvore Apresentao do TP-12 Pesquisa Apresentao do TP-13 Pesquisa Apresentao do TP-14 Ordenao Apresentao do TP-15 Ordenao A programar Aulas de laboratrio previstas

Observaes : As aulas prticas acompanharo o desenvolvimento da teoria. Exerccios entregues fora do prazo sero penalizados por um fator de depreciao 0.75 dias em atraso , at o limite de uma semana.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

TRABALHOS PRTICOS

TP01 - (18/02-22/02) - Captulo 01 - Exerccio 15 Fazer um programa para ler um arquivo contendo uma pgina HTML e retirar todos as clusulas de comandos (tags), gravando um arquivo texto (TXT) semelhante. TP02 - (25/02-01/03) - Captulo 01 - Exerccio 16 Acrescentar ao programa anterior as operaes de contar o nmero de palavras, o nmero total de clusulas, o nmero de clusulas fechadas (tags), o nmero de clusulas abertas (tags) e o nmero de comentrios Usar sobrecarga de operadores. TP03 - (04/03-08/03) - Captulo 01 - Exerccio 17 Acrescentar ao programa anterior operaes recursivas para contar o nmero total de linhas, de colunas e de colunas por linha em tabelas descritas por clusulas (tags). Usar sobrecarga de operadores e de entrada-e-sada em console e arquivos. TP04 - (11/03-15/03) - Captulo 02 - Exerccio 18 Acrescentar ao programa anterior as operaes no-recursivas para contar o nmero total de linhas, de colunas e de colunas por linha em tabelas descritas por clusulas (tags) HTML. Comparar o seu desempenho com seus equivalentes recursivos. Realizar medidas de tempo com a biblioteca timer.h. TP05 - (18/03-22/03) - Captulo 03 - Exerccio 14 Fazer um programa para passar uma expresso aritmtica para a notao ps-fixa, usando uma pilha dinmica. TP06 - (01/04-05/04) - Captulo 03 - Exerccio 15 Acrescentar ao programa anterior a avaliao da expresso aritmtica ps-fixa resultante, usando uma pilha dinmica. TP07 - (08/04-12/04) - Captulo 04 - Exerccio 13 Fazer um programa para implementar um deque _ uma fila dinmica na qual se pode incluir ou retirar de ambas as extremidades. TP08 - (15/04-19/04) - Captulo 05 - Exerccio 08 Fazer um programa para representar conjuntos (arranjos ordenados, sem valores repetidos) usando listas simplesmente encadeadas. Usar sobrecargas para entrada e sada convencionais e com arquivos. Gerar os dados aleatoriamente para efetuar testes. TP09 - (22/04-26/04) - Captulo 05 - Exerccio 09 Fazer um programa para representar e implementar as operaes fundamentais com conjuntos (arranjos ordenados, sem valores repetidos): unio, interseo, diferena. Gerar os dados aleatoriamente para efetuar testes.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

TP10 - (29/04-03/05) - Captulo 06 - Exerccio 10 Fazer um programa com uma funo para determinar a altura de uma rvore binria j criada. Um apontador para a raiz deve ser passado como parmetro. TP11 - (06/05-10/05) - Captulo 06 - Exerccio 16 Fazer um programa para receber valores reais de um arquivo binrio e mont-los em uma rvore binria. Verificar se a rvore est balanceada ou no, pelo critrio AVL. TP12 - (13/05-17/05) - Captulo 07 - Exerccio 02 Fazer um programa para implementar uma TRIE para conter os nomes e matrculas dos alunos de uma sala, contidos em um arquivo binrio. Inserir os valores menores primeiro. Usar os nomes como chave. TP13 - (20/05-24/05) - Captulo 07 - Exerccio 15 Fazer um programa para implementar uma tabela hash para conter os nmeros de matrcula e os nomes dos alunos de uma turma, usando os dgitos da matrcula e as letras do primeiro nome como chave. Utilizar encadeamento em separado em uma lista duplamente encadeada. Usar arquivos binrios para entrada-e-sada. TP14 - (27/05-31/05) - Captulo 08 - Exerccio 04 Fazer um programa para implementar o mtodo Bubblesort em uma lista de nmeros inteiros em memria dinmica. Gerar dados aleatoriamente para teste. Usar arquivos binrios para entrada-e-sada. TP15 - (03/06-07/06) - Captulo 08 - Exerccio 10 Fazer um programa para ordenar um arquivo de inteiros usando apenas um vetor com tamanho aproximadamente igual a 1/4 do tamanho do arquivo original. Usar arquivos binrios para entrada-e-sada.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

PROPOSTA DE CRITRIO DE AVALIAO DIVISO DE PONTOS Distribuio bsica Qt. Ponto s 15

01.

02.

03.

04.

05. 06. 07.

08.

Trabalhos prticos a cada semana entregues em laboratrio Documentao de programa a cada semana em laboratrio (apresentao) Avaliao prtica a cada semana em laboratrio Resumos de contedo a cada semana entregues at sexta-feira Revises em trs ocasies Desenvolvimento de aplicao ao final do semestre Avaliao global (individual, por escrito) ao final do semestre Exame especial (substitutivo) TOTAL

(15)

(15)

15

(15)

15

(05)

15

(03) (01) (01)

03 07 30

(01)

30 _____ 100

Observaes : 1.) As aulas de laboratrio acompanharo a seqncia da teoria. A critrio do professor, exemplos e guias podero ser fornecidos para auxiliar no desenvolvimento das atividades prticas. 2.) Todos os trabalhos prticos devero estar prontos, testados e documentados antecipadamente, para a sua apresentao em laboratrio, e sero passveis de avaliao oral, aplicada a critrio do professor.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

3.) A qualquer entrega fora do prazo, independente do motivo, alm da avaliao de contedo, ser aplicado um fator de depreciao indicado por: 0.75 dias em atraso , at o limite mximo de uma semana. Aps o limite de uma semana, nenhum exerccio ser aceito como parte integrante das avaliaes somativas. A antecipao da entrega, no entanto, ser passvel da incorporao de bnus, a ser definido oportunamente e aplicado a critrio do professor. A avaliao prtica ser executada apenas durante as aulas de laboratrio. Eventuais faltas s aulas prticas podero ser compensadas por atividades extras, definidas oportunamente, dentro de limites de tempo, de pontos e perspectiva de aproveitamento didtico. 4.) Todos os trabalhos prticos devero ser implementados em linguagem C++, com orientao a objetos, e conter: identificao do aluno _ nome e nmero de matrcula (no texto e na abertura da execuo de programa) comentrios para descrever objetivos do programa e controle de verses detalhes de execuo (manual do usurio) mtodos de classes e sub-programas constantes, variveis e parmetros algoritmos e trechos de cdigo condies de funcionamento entrada e sada por console e por arquivos previso e registro de testes o qu dever ser testado (condies) como ser testado (valores) como ser avaliado (resultados) histrico de desenvolvimento descrio dos processos individuais ou em grupo empregados para fixao de cada contedo para o planejamento de implementaes cpias da lista de discusses, se for o caso cpias de correio eletrnico, se for o caso organizao da informao registro do desenvolvimento da atividade prtica dificuldades, dvidas, questionamentos comentrios, dicas, solues, aprimoramentos esquemas, diagramas, grficos, algoritmos

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

concluso anlise dos resultados anlise crtica da atividade estudo da ordem de complexidade auto-avaliao 5.) Os resumos de contedo devero ser feitos a cada semana, durante todo o semestre, segundo o cronograma definido pelo professor, e entregues at as 19:00h de sextafeira. Seu objetivo antecipar o conhecimento do assunto a ser desenvolvido em cada uma das unidades. Os resumos tericos, exemplos de aplicao e referncias devero ser organizados em pginas no formato HTML. A primeira pgina e a de referncias, padronizadas, tero o modelo fornecido pelo professor; as demais tero o formato livre, resguardados os limites de espao e bom senso. Diagramas e figuras devero ser colocados em formato GIF ou JPEG. Arquivos DOC ou RTF no sero aceitos em qualquer circunstncia. Em algumas oportunidades, cada aluno dever rever as referncias contidas nos resumos tericos feitos pelos colegas, e realizar uma avaliao crtica de contedo, comparando-as com as suas prprias, podendo sugerir outras referncias, acrscimos e modificaes que aperfeioem o material por eles j entregue. Esta anlise poder ser enviada aos seus respectivos autores, por correio eletrnico interno, com cpia para a lista de discusses da disciplina ou outro dispositivo de comunicao interna. Recomenda-se que, aps apreciar as sugestes, os colegas notificados registrem nas prprias pginas a identificao de seus revisores e a data de recebimento da crtica. sugerido verificar os seguintes aspectos: identificao do autor, do tema e do assunto reviso terica: histrico, aplicaes modelos exemplos identificao das fontes de informao (referncias) autores e/ou instituies livros e apostilas homepages ou websites Solicita-se a cada aluno que observe o fornecimento das seguintes informaes para cada registro de referncia: assunto fonte (URL, livro, apostila etc.) comentrio (data, mecanismo de busca, palavras-chave, observaes pessoais etc.) avaliao pessoal (assunto, apresentao, acessibilidade, autoria)

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Para orientar a avaliao de qualidade das referncias, sugere-se os seguintes critrios, em uma escala de 0 (pior) a 9 (melhor) : assunto contm informaes relevantes/teis oferece abrangncia sobre o assunto e/ou detalhes objetivo, a linguagem clara, fcil de entender apresentao bem estruturada oferece texto/imagens de boa qualidade legvel acessibilidade atrativo, favorece a explorao oferece recursos para interatividade/navegabilidade dispe de formatos alternativos ou materiais adicionais autoria facilmente identificvel e contactvel autor/instituio oferece data de produo/atualizao dispe de outras referncias ou indicaes complementares As avaliaes e comentrios pessoais so os itens mais importantes para o compartilhamento e a classificao das referncias por relevncia. Devido a limitao de espao, sugere-se a maior conciso possvel, sem prejudicar a legibilidade. Um banco de dados dever ser mantido pela equipe tcnica do site acadmico, por tempo indeterminado. Seus resultados podero ser usados para pesquisas, avaliaes de desempenho e validao de projetos. 6.) Sugere-se a implementao de todos os exemplos e exerccios tericos, comentados em aulas tericas, os quais podero servir como atividades extras, como compensao ou para a complementao de pontos, at o limite previsto para este tipo de atividade, a critrio do professor. 7.) Uma lista de discusses estar disposio de todos os alunos interessados em trocar experincias, discutir questes relativas ao contedo, fazer sugestes ou levantar questes. A participao ativa servir como um dos critrios para a avaliao do desempenho individual. Toda contribuio, oportuna e til, ser considerada e poder ser includa de forma definitiva ao acervo disponvel de materiais da disciplina.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

8.) O desenvolvimento de uma aplicao consistir no emprego dos conceitos, discutidos em teoria e experimentados em laboratrio, a um problema particular. Seu detalhamento estar indicado a seguir. A entrega ser dividida em etapas, com o limite mximo para a sua concluso estabelecido para at duas semanas antes do final do semestre. Sua forma de apresentao seguir o mesmo padro indicado para a reviso de contedo. Outras sugestes podero ser apreciadas e eventualmente aceitas aps o exame de suas propostas de desenvolvimento entregues antecipadamente. Trabalhos em grupo (reduzidssimos) podero ser aceitos desde que representem a unio, ao final, de duas (ou mais) propostas individuais diferentes, e cujo resultado possa vir a ser superior a cada uma delas isoladamente. 9.) A discusso de solues em grupo podero ser aceitas desde que implementadas e entregues individualmente. Neste caso, devero ser acompanhadas de uma referncia aos integrantes do grupo e documentadas as contribuies individuais. Estas atividades, no entanto, estaro limitadas proporo de 2 para 1, ou seja, a cada duas solues em conjunto, a terceira dever ser feita, obrigatria e exclusivamente, de forma individual. O total de atividades em grupo no poder exceder 50% do total de atividades prticas previstas. Os alunos que demonstrarem maior disposio em auxiliar os colegas e em prestar contribuies para o aprendizado de outros podero incorporar bnus s suas avaliaes individuais. Para tanto, imprescindvel o registro destas contribuies pelos colegas que as receberem. Implementaes consideradas idnticas sero descartadas para efeito de avaliao. Solues similares, entretanto, primeiro sero classificadas por nvel de complexidade, documentao, qualidade e data de entrega, e depois recebero uma avaliao correspondente. A no observao das restries impostas poder implicar, a qualquer tempo, na perda total dos pontos associados a estas atividades. 10.) A avaliao de desempenho ser efetuada pelo professor, durante todo o semestre, mediante a anlise do interesse, participao, dedicao, empenho e evoluo de cada aluno em relao ao conjunto de atividades da disciplina. Avaliaes tericas, se executadas, tero por objetivo avaliar a capacidade de resolver e criticar solues de problemas associados aos assuntos tratados em cada unidade.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

SUGESTO PARA PROJETO DE APLICAO Tema: Tratar informaes em um arquivo com formato XML. Tarefas: a.) ler arquivo do tipo texto, em formato XML, separar palavras e comandos tags, gravando uma tabela apenas com as tags que apareceram; b.) organizar a ordem das tags, na forma de uma pilha, com o ltimo registro no topo; c.) organizar um ndice na forma de uma fila de linhas, sem repeties, que contenham tags (abertura e fechamento); d.) organizar uma lista de tags, durante a insero, por ordem alfabtica; e.) organizar uma lista de tags, em ordem alfabtica, mediante a distribuio em uma rvore; f.) organizar uma tabela hash com listas de tags (abertura e fechamento) organizadas alfabeticamente; g.) comparar algoritmos para ordenao de uma lista dinmica de tags; h.) implementar algoritmos de busca por nome e nmero da liinha, para cada uma das tarefas anteriores. Observaes: A implementao deve ser com orientao a objetos e realizada de forma incremental, visando sua integrao. Cada parte dever ter a sua entrega programada para logo aps o trabalho prtico do assunto correspondente, devidamente comentada. Outras tarefas podero ser sugeridas para complemento do contedo.

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

PROPOSTA PARA A DISTRIBUIO DE AULAS TERICAS

AULA CONTEDO 01 Apresentao da disciplina - Metodologia OBJETIVO Apresentar o contedo da disciplina Apresentar as referncias bibliogrficas Apresentar uma proposta de critrio de avaliao REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 01 Outros : SWAIT; WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : TP 01 - Captulo 01 : 15

02

Introduo - Tcnicas de programao OBJETIVO Introduzir o conceito de algoritmo Mostrar o relacionamento entre a eficincia de um algoritmo e a representao de dados REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 01 Outros : SWAIT; WIRTH EXERCCIOS PROPOSTOS : Apostila - Captulo 01 : 12

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 03 Metodologias para o desenvolvimento de programas OBJETIVO Apresentar as principais metodologias para o desenvolvimento de algoritmos REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 01 Outros : LAFORE, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 01 : 13 e 14 TP 02 - Captulo 01 : 16

04

Algoritmos recursivos OBJETIVO Rever o conceito de recursividade Comparar a eficincia de um algoritmo recursivo e outro no REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 01 Outros : MORAES, LAFORE, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 01 : 16

05

Algoritmos recursivos OBJETIVO Comparar a eficincia de um algoritmo recursivo e outro no REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 01 Outros : LAFORE, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 02 : 01 TP 03 - Captulo 01 : 17

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 06 Algoritmos recursivos OBJETIVO Mostrar como retirar a recursividade, quando possvel. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 02 Outros : LAFORE, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 02 : 02

07

Tcnicas para a anlise de algoritmos OBJETIVO Rever o conceito de somatrios e suas propriedades; Rever o conceito de probabilidades; Apresentar uma anlise em termos do comportamento assinttico de funes. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulos 02 Outros : LAFORE, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 02 : 03 TP 04 - Captulo 02 : 18

08

Tcnicas para a anlise de algoritmos OBJETIVO Rever o conceito de somatrios e suas propriedades; Rever o conceito de probabilidades; Estudar a medida de tempo de execuo de um programa; REFERNCIAS BIBLIOGRFICAS : Apostila - Captulos 02 Outros : LAFORE, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 02 : 04

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 09 Tcnicas para a anlise de algoritmos OBJETIVO Empregar as tcnicas para anlise de algoritmos REFERNCIAS BIBLIOGRFICAS : Apostila - Captulos 02 Outros : LAFORE, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 02 : 05 e 06

10

Algoritmos fundamentais - Pilhas OBJETIVO Rever o conceito de endereo e alocao de memria; Rever o conceito de pilha e suas operaes bsicas; Estudar a implementao de uma pilha em memria esttica e dinmica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 03 Outros : MORAES, LAFORE, SWAIT e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 03 : 02 TP 05 - Captulo 03 : 14

11

Algoritmos fundamentais - Pilhas OBJETIVO Estudar a implementao de uma pilha em memria dinmica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 03 Outros : LAFORE, SWAIT e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 03 : 03 e 04

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 12 Algoritmos fundamentais - Pilhas OBJETIVO Estudar a implementao de uma pilha em memria esttica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 03 Outros : LAFORE, SWAIT e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 03 : 10 e 11

13

Algoritmos fundamentais - Filas OBJETIVO Rever o conceito de fila e suas operaes bsicas; Estudar a implementao de uma fila em memria esttica e dinmica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 04 Outros : MORAES, LAFORE, SWAIT e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 04 : 01 a 10 TP 06 - Captulo 03 : 15

14

Algoritmos fundamentais - Filas OBJETIVO Estudar a implementao de uma fila em memria dinmica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 04 Outros : LAFORE, SWAIT e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 04 : 01 e 02

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 15 Algoritmos fundamentais - Filas OBJETIVO Estudar a implementao de uma fila em memria dinmica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 04 Outros : LAFORE, SWAIT e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 04 : 04 TP 07 - Captulo 04 : 13

16

Algoritmos fundamentais - Listas OBJETIVO Rever o conceito de listas e suas operaes bsicas; Estudar implementaes de listas em memria e dinmica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 05 Outros : MORAES, LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 05 : 01 e 03

17

Algoritmos fundamentais - Listas OBJETIVO Apresentar aplicaes para os algoritmos de listas. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 05 Outros : LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 05 : 07 TP 08 - Captulo 05 : 08

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 18 Algoritmos fundamentais - Listas OBJETIVO Apresentar aplicaes para os algoritmos de listas duplamente encadeadas. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 05 Outros : LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 05 : 02 e 12

19

Algoritmos fundamentais - Listas OBJETIVO Rever o conceito de listas e suas operaes bsicas; Estudar implementaes de listas em memria esttica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 05 Outros : LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 05 : 10 TP 09 - Captulo 05 : 09

20

Algoritmos fundamentais - rvores OBJETIVO Rever os conceitos de rvores e suas operaes bsicas; Estudar implementaes de rvores em memria esttica e dinmica. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 06 Outros : MORAES; LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 06 : 02 e 03

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 21 Algoritmos fundamentais - rvores OBJETIVO Estudar operaes de insero e retirada em rvores. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 06 Outros : LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 06 : 08 e 09 TP 10 - Captulo 06 : 10

22

Algoritmos fundamentais - rvores OBJETIVO Estudar a insero em Apresentar aplicaes para os algoritmos de rvores. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 06 Outros : LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 06 : 11 e 12

23

Algoritmos fundamentais - rvores OBJETIVO Apresentar aplicaes para os algoritmos de rvores. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 06 Outros : LAFORE, SWAIT, WIRTH e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 06 : 11 e 12 TP 11 - Captulo 06 : 16

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 24 Algoritmos de pesquisa OBJETIVO Apresentar os algoritmos para pesquisa seqencial e binria. Analisar a complexidade destes algoritmos. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 07 Outros : MORAES; LAFORE, ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 07 : 01 a 05

25

Algoritmos de pesquisa OBJETIVO Apresentar os algoritmos para pesquisa em rvores. Analisar a complexidade destes algoritmos. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 07 Outros : ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 07 : 14 TP 12 - Captulo 07 : 02

26

Algoritmos de pesquisa OBJETIVO Apresentar os algoritmos para lidar com tabelas hash. Analisar a complexidade destes algoritmos. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 07 Outros : ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 07 : 06 a 10

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 27 Algoritmos de pesquisa OBJETIVO Apresentar os algoritmos para pesquisa em outros tipos de rvores. Analisar a complexidade destes algoritmos. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 07 Outros : ZIVIANI EXERCCIOS PROPOSTOS : TP 13 - Captulo 07 : 15

28

Algoritmos de ordenao OBJETIVO Apresentar os mtodos para ordenao : Bolha Seleo REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 08 Outros : MORAES, LAFORE, ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 08 : 01 e 03

29

Algoritmos de ordenao OBJETIVO Apresentar os mtodos para ordenao : Insero ShellSort REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 08 Outros : ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 08 : 06 TP 14 - Captulo 08 : 04

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

AULA CONTEDO 30 Avaliao global OBJETIVO Verificao de aprendizagem individual. REFERNCIAS BIBLIOGRFICAS : Apostila - Captulos de 01 a 08 Outros : LAFORE, MORAES, WIRTH e ZIVIANI

31

Algoritmos de ordenao OBJETIVO Apresentar os mtodos para ordenao : QuickSort HeapSort REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 08 Outros : LAFORE e ZIVIANI EXERCCIOS PROPOSTOS : Apostila - Captulo 08 : 07 a 09 TP 15 - Captulo 08 : 10

32

Algoritmos de ordenao OBJETIVO Apresentar outros mtodos para ordenao REFERNCIAS BIBLIOGRFICAS : Apostila - Captulo 08 Outros : ZIVIANI

33

A programar

34

A programar

Direitos reservados para uso da PUC-Minas / Instituto de Informtica

Você também pode gostar