Universidad de Costa Rica
|
|
El objetivo de esta tarea programada es que usted diseñe e implemente una clase completa, junto con sus programas de prueba.
Escriba un programa que sirva para contar la cantidad de veces
que aparece cada palabra en un archivo de texto. Para eso, utilice
la clase lista para implementar un vector asociativo usando como
elemento de la lista parejas de valores, de la forma
"<string, int>
".
// Tdef.h (C) 2004 adolfo@di-mare.com #ifndef _Tdef_h #define _Tdef_h #include "Astring.h" typedef Astring T1; typedef int T2; class pair { public: T1 first; T2 second; pair() {} pair(const T1& a, const T2& b) first(a), second(b) {} }; typedef pair T; // simula plantillas #endif // EOF: Tdef.h |
Su trabajo consiste en
especificar e
implementar
la clase "vector
" usando la clase lista para que
"vector
" pueda ser un vector indexado por una hilera,
que contiene un contador para cada palabra que aparece en el
archivo de entrada.
class vector { public: vector(); // Contructor por defecto (de vector) ~vector(); // Destructor T2 & operator[] (T1 &); // V["banana"] = 3 size_t Capacidad() const; size_t Dimension() const; class iterator { /* el iterador del vector*/ }; }; // vector |
En la clase vector lo más importante es el
método e
"vector::operator[]()
" que se encarga de retornar una
referencia al i-ésimo componente del vector. Note, eso
sí, que en lugar de recibir un número entero como
argumento, lo que recibe es una hilera, pues el tipo
"T1
" está definido con el typedef
como "Astring
".
Para mostrar que su vector funciona tome el enunciado de esta
tarea y déselo como entrada a su programa. Use su
solución para la
tarea anterior para implementar un
método "Ordene()
" que le permita imprimir en
orden los valores de las palabras que ha detectado.
No se complique. Asuma que una palabra es cualquier hilera que
comienza con una letra o con un número. Apenas aparezca un
caracter diferente, tome ese caracter como una palabra aparte. Por
ejemplo, en la hilera "banana 123abc; 32=>145
",
las palabras son las siguientes:
banana
"123abc
";
"32
"=
">
"145
"Entregue su tarea por correo electrónico, como lo hizo anteriormente.
Tiempo de entrega: | 7 días |
|
|
Primera etapa: | 3 días | ||
Modalidad: | En parejas |
Adolfo Di Mare <adolfo@di-mare.com>.
|