Universidad de Costa Rica
|
|
Se dice que una matriz es
rala si la mayor parte de los valores que contiene son el
mismo. Usualmente, el valor que más se repite es el
"0
" (cero), pero perfectamente podría ser
otro. Tome la solución del
primer examen en donde está la
especificación y la
implementación
de la clase "Sparse_Matrix
". Encontrará que
varios de sus métodos no están correctamente
implementados, pues la clase
"Sparse_Matrix
"
fue obtenida modificando el código fuente de la clase
"Matrix
"
chirrisquitica[*],
siguiendo estos pasos:
Matrix.h
"
en el archivo
"Sparse_Matrix.h
".Matrix
" por "Sparse_Matrix
".Sparse_Matrix.h
".Sparse_Matrix
".
El nuevo
Rep
para "Sparse_Matrix
" por lo menos incluye 3 vectores
paralelos (recuerde que el
modelo de la clase generalmente está en la
especificación del
"check_ok()
"
para la clase):
template <class E> class Sparse_Matrix { unsigned * m_I; ///< Indice "i" de \c M(i,j) unsigned * m_J; ///< Indice "j" de \c M(i,j) E * m_val; ///< Valor para \c M(i,j) };
Pese a que el programa de la
tarea programada anterior funciona
correctamente con esta nueva versión de la clase matriz, no
todos los métodos estarán correctamente
implementados pues el compilador C++ no compila una plantilla a
menos que necesita usarla. Por eso, las operaciones
"Move()
",
"Swap()
",
y otras más, de "Sparse_Matrix
" son
incorrectas. Usted debe corregirlas y hacer los datos de los datos
de prueba para todas ellas.
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
Tiempo de entrega: | 3 días |
Modalidad: | En parejas |
Adolfo Di Mare <adolfo@di-mare.com>.
|