MatrizTamanoVariable.hpp
Ir a la documentación de este archivo.
1 // Clase para el trabajar con matrices de tamaño variable //
3 // //
4 // Análisis y Diseño y Programación: //
5 // //
6 // Nombre: Antonio Carrillo Ledesma //
7 // E-mail: acl@www.mmc.igeofcu.unam.mx //
8 // Página: http://www.mmc.igeofcu.unam.mx/acl //
9 // //
10 // //
11 // Este programa es software libre. Puede redistribuirlo y/o modificarlo //
12 // bajo los términos de la Licencia Pública General de GNU según es //
13 // publicada por la Free Software Foundation, bien de la versión 2 de //
14 // dicha Licencia o bien (según su elección) de cualquier versión //
15 // posterior. //
16 // //
17 // Este programa se distribuye con la esperanza de que sea útil, pero SIN //
18 // NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin //
19 // garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la //
20 // Licencia Pública General de GNU para más detalles. //
21 // //
22 // Debería haber recibido una copia de la Licencia Pública General junto //
23 // con este programa. Si no ha sido así, escriba a la Free Software //
24 // Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU. //
25 // //
26 // //
28 
29 
30 
31 #ifndef __MatrizTamanoVariable__
32 #define __MatrizTamanoVariable__
33 
34 
35 #include "Matriz_Base.hpp"
36 
37 
39 
45 {
46 private:
47 
49 
51  void solicitaMemoria(const int ren, const int *col);
52 
53 
55  ldouble **M;
57  int *TC;
58 
59 
60 public:
61 
63 
65  MatrizTamanoVariable(const int ren, const int *col)
66  {
67  solicitaMemoria(ren, col);
68  asignaNombre("SinNombre");
69  }
70 
72 
75  MatrizTamanoVariable(const int ren, const int *col, const char *nmb)
76  {
77  solicitaMemoria(ren, col);
78  asignaNombre(nmb);
79  }
80 
82  {
83  liberaMemoria();
84  }
85 
87  void liberaMemoria(void);
88 
90 
91  void inicializa(ldouble val);
92 
93 #ifdef DEPURAR
94 
98  void asigna(const int ren, const int col, const ldouble val);
99 
101 
104  ldouble retorna(const int ren, const int col);
105 #else
106 
110  void asigna(const int ren, const int col, const ldouble val)
111  {
112  M[ren][col] = val;
113  }
114 
116 
119  ldouble retorna(const int ren, const int col)
120  {
121  return (M[ren][col]);
122  }
123 #endif
124 
126 
128  inline int retornaNumeroColumna(int ren)
129  {
130  return ( TC[ren]);
131  }
132 
134 
135  void copia(MatrizTamanoVariable *a);
136 
138  void visualizaMatricesInternas(void);
139 
141 
142  int maximoTamanoColumnaOcupado(void);
143 
145 
146  int entradasDistintasCero(void);
147 
148 };
149 
150 
155 #endif
~MatrizTamanoVariable()
Definition: MatrizTamanoVariable.hpp:81
int maximoTamanoColumnaOcupado(void)
Retorna el máximo tamaño en todas las columnas que sean distintos de cero.
Definition: MatrizTamanoVariable.cpp:205
void liberaMemoria(void)
Libera la memoria solicitada para la matriz.
Definition: MatrizTamanoVariable.cpp:98
ldouble retorna(const int ren, const int col)
Retorna valor almacenado en el renglon y la columna indicada.
Definition: MatrizTamanoVariable.hpp:119
MatrizTamanoVariable(const int ren, const int *col, const char *nmb)
Constructor de la clase.
Definition: MatrizTamanoVariable.hpp:75
Clase para el trabajar con matrices de tamaño variable.
Definition: MatrizTamanoVariable.hpp:44
int retornaNumeroColumna(int ren)
Retorna el tamaño del número de columna para dicho renglon.
Definition: MatrizTamanoVariable.hpp:128
int entradasDistintasCero(void)
Retorna el número de entradas distintas de cero en la matriz.
Definition: MatrizTamanoVariable.cpp:223
void inicializa(ldouble val)
Inicializa la matriz al valor indicado.
Definition: MatrizTamanoVariable.cpp:88
void asignaNombre(const char *nmb)
Asigna nombre a la matriz.
Definition: Matriz_Base.cpp:42
MatrizTamanoVariable(const int ren, const int *col)
Constructor de la clase.
Definition: MatrizTamanoVariable.hpp:65
Clase base para el trabajar con matrices.
Definition: Matriz_Base.hpp:57
void asigna(const int ren, const int col, const ldouble val)
Asigna el valor indicado en el renglo y columna solicitado.
Definition: MatrizTamanoVariable.hpp:110
void copia(MatrizTamanoVariable *a)
Copia el contenido de la matriz a la matriz pasada como parámetro.
Definition: MatrizTamanoVariable.cpp:156
void visualizaMatricesInternas(void)
Visualiza las matrices internas usadas para soportar a las matrices de tamaño variable.
Definition: MatrizTamanoVariable.cpp:174