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>.
|
|
|