next up previous
Next: Entrada Up: questoes Previous: Exemplo

Problema 2: Palavras mais comuns

Arquivo: palavras.c ou palavras.pas
Entrada: palavras.in
Saída: palavras.out

O objetivo do programa que você fará é resolver o seguinte problema:

Dado um arquivo texto e um inteiro positivo k, imprimir as k palavras que mais ocorrem no texto (e o número de vezes que elas ocorrem) em ordem decrescente de freqüência.

O problema ainda está um tanto quanto vago. Vamos torná-lo mais preciso. Suponhamos que uma palavra é uma seqüência de uma ou mais letras consecutivas; ``Maratona'' é uma palavra enquanto que ``pau-brasil'' não é. A seqüência de letras deve ser maximal, significando que a seqüência não pode ser aumentada sem que incluamos uma não-letra. Letras maiúsculas serão consideradas equivalentes a letras minúsculas, logo as palavras ``Maratona'', ``MARATONA'' e ``maratona'' são idênticas e deverão ser consideradas como sendo a mesma palavra.

O problema ainda não está bem definido pois um arquivo pode ter mais que k palavras, todas ocorrendo com a mesma freqüência; ou ainda pode nem conter k palavras distintas. Sejamos mais precisos: as palavras mais freqüentes deverão ser impressas em ordem decrescente de freqüência, com palavras de mesma freqüência listadas em ordem alfabética. A impressão deverá parar depois que k palavras foram impressas; se mais do que k palavras estão presentes no texto.

Você pode supor que o comprimento máximo de uma palavra é 31 caracteres e que no texto não ocorrem mais do que 1024 palavras distintas. Você ainda pode supor que as palavras do texto não estão acentuadas. Assim no texto escreveremos, por exemplo, ``frequente'' ao invés de ``freqüente'', ``estao'' ao invés de ``estão'' e ``inves'' ao invés de ``invés''.




next up previous
Next: Entrada Up: questoes Previous: Exemplo
Carlos Eduardo Ferreira
1999-08-25