Você está na página 1de 3

Universidade Federal da Bahia Graduao em Cincia da Computao MATA40 - Estruturas de Dados e Algoritmos I Trabalho Prtico Extra - Competio de Programao

Prof. Flvio Assis


Semestre 2012.1 - 6 de maio de 2012

Ocorrncia de Palavras em Linhas

Descrio Geral do Trabalho

Neste trabalho o aluno implementar um programa que retornar informaes sobre a ocorrncia de palavras em um texto dado. Este trabalho constitui uma tarefa adicional da disciplina. Os alunos formaro equipes. Ganhar 1 ponto adicional no semestre os membros da equipe que zer o programa que apresentar a sada no menor tempo. O programa ter como entrada um conjunto de linhas de texto, seguido por um conjunto de operaes a serem executadas. O programa deve ler da entrada padro e escrever os resultados na sada padro. No h um limite mximo para o nmero de linhas do texto. O programa deve estar preparado para processar um nmero bastante grande de linhas (ordem de um milho de linhas). O texto ser composto apenas por palavras e apenas um ponto (.). O ponto ocorrer apenas uma vez, como nico caractere de uma linha, e indicar o m do texto. Uma palavra ser denida como uma sequncia de letras minsculas, sem acento.

Formato da Entrada

A entrada constar de uma sequncia de linhas de texto terminada por uma linha contendo um nico caractere: um ponto (.). Aps a linha contendo um ponto, haver uma sequncia de operaes para listar ocorrncias de palavra, terminada por uma operao de trmino de sequncia de operaes. O formato das operaes segue abaixo: 1. lista ocorrncias de palavra: esta operao consistir de uma linha contendo a letra p, seguida de um espao, seguido de uma palavra. Esta operao retorna informao sobre as linhas em que a palavra dada aparecem e a partir de quais posies. 2. trmino de sequncia de operaes: a sequncia de comandos ser terminada por uma linha com a letra e.

Formato da Sada
1. lista ocorrncia de palavra: esta operao apresenta inicialmente na sada a sequncia de caracteres "palavra:" (sem as aspas), seguida de um espao, seguido da palavra indicada na operao. Se a palavra no ocorrer no texto, esta operao apresenta, na linha seguinte, a seguinte sequncia de caracteres "nao ocorre no texto" (sem aspas). Caso a palavra ocorra no texto, a operao apresentar, nas linhas seguintes, as informaes sobre cada uma das ocorrncias, na ordem em que a palavra aparece no texto. A informao de uma ocorrncia ter o seguinte formato: a sequncia de caracteres "linha:" (sem aspas), seguida de um espao, seguido do nmero da linha em que a palavra ocorre, seguido de um espao, seguido da sequncia de caracteres "posicao:" (sem aspas), seguida de um espao, seguido da posio na linha em que a palavra ocorre. As informaes sobre cada ocorrncia da palavra sero apresentadas em linhas separadas. A primeira linha do texto ser considerada a linha 1. A primeira posio de uma linha ser considerada a posio 1. 2. trmino de sequncia de operaes: esta operao no gera sada.

O formato de sada das operaes como descrito abaixo:

Regras da Competio
1. Este torneio envolver as duas turmas de MATA40 do Prof. Flvio (ou seja, no sero dois torneios separados). Podero participar do torneio, portanto, os alunos inscritos nestas turmas. 2. Cada equipe poder ter, no mximo, trs participantes. Os membros de uma equipe no precisaro ser todos de uma mesma turma. 3. As equipes somente podero implementar seus programas em uma das seguintes linguages: Pascal, Java, C ou C++. 4. Somente trabalhos feitos utilizando-se os seguintes compiladores sero aceitos: Pascal: FreePascal C: gcc ou djgpp C++: g++ ou djgpp Java: compilador java do JDK 1.4 ou mais recente 5. As equipes devero se cadastrar junto ao professor at o dia 22 de maio. O cadastramento dever ser feito em sala de aula.

As seguintes regras valero para a competio:

6. Os programas apresentados devero ser de autoria dos membros da equipe. 7. Os programas sero avaliados em sala de aula, em um horrio a ser informado. 8. Ser executado um mesmo teste (conjunto de operaes) trs vezes. O tempo de execuo do programa ser a mdia do tempo de execuo dos trs testes. 9. A equipe vencedora ser aquela cujo programa conseguir a menor mdia dos tempos de execuo. 10. O formato de sada ser estritamente levado em considerao. Os programas que no atenderem ao formato sero desconsiderados. 11. Os programas no podero utilizar bibliotecas com implementao de estruturas de dados. Todas as estruturas de dados devero ser implementadas pela equipe. 12. A equipe vencedora somente receber o ponto aps uma apresentao, em sala de aula, sobre a implementao. Todos os membros da equipe tero que ser capazes de responder qualquer pergunta sobre a implementao. Caso a equipe no responda de maneira satisfatria, perder direito ao ponto. 13. A entrega do trabalho ser feita em duas etapas. Na primeira etapa, em data a ser divulgada, cada equipe dever entregar uma verso do trabalho para ser testada. Esta verso no precisa ser a denitiva. Ser utilizada apenas para vericar se h algum problema com a leitura dos dados. Em uma segunda etapa, em data a ser divulgada, cada equipe dever entregar a verso denitiva do programa. As datas sero divulgadas no site da disciplina. 14. O trabalho ser entregue atravs de upload em uma pgina do site da disciplina, criptografado. A senha deve ser encaminhada ao professor por email. A equipe que no contiver membro que possa escrever na pgina da disciplina deve enviar o programa por email (no necessrio criptografar). O trabalho somente ser considerado entregue quando a equipe receber um email de conrmao do professor. 15. Os programas sero testados em um computador Apple Mac com sistema operacional Mac OS X 10.6.8.

Você também pode gostar