Tarea 3: Histograma de Frecuencia de Palabras
En esta tarea usted experimentará el uso de la bibliotecas
de plantillas estándar.
Problema
Se le pide escribir un programa que lea un documento
(archivo) de la entrada estándar y produzcas en la salida estándar
un listado de todas las palabras aparecidas en el documento junto con un
contador del número de ocurrencias de cada palabra. El listado debería
estar en ordenado por número creciente de ocurrencias y orden alfabético
dentro de una misma frecuencia de ocurrencia.
Cada línea del listado de salida debe contener
una única palabra (todas en minúsculas) seguidas por uno o
más espacios en blanco y seguidas por un entero indicando el númerio
de ocurrencias.
Para efectos de esta tarea, una "palabra" es un string
de caracteres alfabéticos limitados en ambos extremos por caracteres
no alfabéticos, el comienzo o fin de línea y el comienzo o
fin de archivo. Las diferencias en mayúscula o minusculas no
son consideradas relevantes. "hola", "HOLA", y "Hola" son todas tratadas como
la misma palabra.
Implementación
Usted debería producir una implementación
usando C++ y la biblioteca estándar STL. Un "esqueleto" de la solución
está disponible en histograma.cpp
como punto de partida.
Observe los comentarios en estilo /* */ que indican
las porciones del código que ustede debe incorporar para completar
el algoritmo.
Alternativamente, usted puede desarrollar su solucion en Java. En este caso
se deja a su disposicion histograma.java
y WordCounts.java
los cuales pueden ser usados como punto de partida.
Envio de la Tarea
Crear un subdirectorio que lleva su nombre y con SOLO los
archivos siguientes: Makefile, readme.txt, historgrama.cpp, documentacion
(descripción el un formato visible en linux, con una descripción
de alto nivel del algoritmo). El archivo comprimido (zip o tar) se envia a
elo326@elo.utfsm.cl
Ejemplo
Si su programa es aplicado este archivo histograma.cpp
se obtendrá algo como esto
.