MatrizInt.hpp
Ir a la documentación de este archivo.
1 // Clase para el trabajar con matrices con entradas enteras //
3 // //
4 // Análisis y Diseño y Programación: //
5 // //
6 // Nombre: Antonio Carrillo Ledesma //
7 // E-mail: acl@www.mmc.geofisica.unam.mx //
8 // Página: http://www.mmc.geofisica.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 __MatrizInt__
32 #define __MatrizInt__
33 
34 #include "Matriz_Base.hpp"
35 
36 
38 
43 class MatrizInt: public Matriz_Base
44 {
45 protected:
46 
48  int **M;
49 
51  void liberaMemoria(void);
52 
53 
54 public:
55 
57 
62  MatrizInt(const int ren, const int col, const char *nmb, int val);
63 
66  {
67  liberaMemoria();
68  }
69 
70 
72 
73  void inicializa(const int val);
74 
76 
79  int operator() (size_t ren, size_t col)
80  {
81  return retorna(ren,col);
82  }
83 
84 
85 #ifdef DEPURAR
86 
90  void asigna(const int ren, const int col, const int val);
91 
93 
96  int retorna(const int ren, const int col);
97 #else
98 
102  inline void asigna(const int ren, const int col, const int val)
103  {
104  M[ren][col] = val;
105  }
106 
108 
111  inline int retorna(const int ren, const int col)
112  {
113  return M[ren][col];
114  }
115 #endif
116 
118 
121  inline void asigna(int r, int *arr, int tam)
122  {
123  int i, t = Col < tam ? Col : tam;
124  for (i = 0; i < t; i++) M[r][i] = arr[i];
125  }
126 
128 
131  inline void retorna(int r, int *arr, int tam)
132  {
133  int i, t = Col < tam ? Col : tam;
134  for (i = 0; i < t; i++) arr[i] = M[r][i];
135  }
136 
138 
139  int maximoTamanoColumnaOcupado(void);
140 
142 
143  int entradasDistintasCero(void);
144 
146 
149  int columnasDistintasDeValor(int ren, int val)
150  {
151  int i, sw = 0;
152  for (i = 0; i < Col; i++)
153  {
154  if (M[ren][i] != val) sw ++;
155  }
156  return sw;
157  }
158 
160  void visualiza(void);
161 
162 };
163 
164 #endif
165 
int retorna(const int ren, const int col)
Retorna el valor del renglon y columna solicitado.
Definition: MatrizInt.hpp:111
int maximoTamanoColumnaOcupado(void)
Retorna el máximo tamaño en todas las columnas que sean distintos de cero.
Definition: MatrizInt.cpp:134
int ** M
Puntero al contenido de la matriz.
Definition: MatrizInt.hpp:48
Clase para el trabajar con matrices con etradas enteras.
Definition: MatrizInt.hpp:43
MatrizInt(const int ren, const int col, const char *nmb, int val)
Constructor de la clase.
Definition: MatrizInt.cpp:41
void visualiza(void)
Visualiza la matriz.
Definition: MatrizInt.cpp:167
void asigna(int r, int *arr, int tam)
Convierte el contenido del arreglo a en el renglon de la matriz indicado.
Definition: MatrizInt.hpp:121
void liberaMemoria(void)
Libera la memoria solicitada para la matriz.
Definition: MatrizInt.cpp:65
void asigna(const int ren, const int col, const int val)
Asigna el valor indicado en el renglo y columna solicitado.
Definition: MatrizInt.hpp:102
int columnasDistintasDeValor(int ren, int val)
Retornal el numero de columnas del renglon indicado distintas del valor especificado.
Definition: MatrizInt.hpp:149
~MatrizInt()
Destructor de la clase.
Definition: MatrizInt.hpp:65
void retorna(int r, int *arr, int tam)
Retorna el contenido del renglon indicado en un arreglo.
Definition: MatrizInt.hpp:131
void inicializa(const int val)
Inicializa la matriz al valor val indicado.
Definition: MatrizInt.cpp:82
int Col
Número de columnas.
Definition: Matriz_Base.hpp:62
int operator()(size_t ren, size_t col)
Retorna el valor del renglon y columna solicitado.
Definition: MatrizInt.hpp:79
Clase base para el trabajar con matrices.
Definition: Matriz_Base.hpp:57
int entradasDistintasCero(void)
Retorna el número de entradas distintas de cero en la matriz.
Definition: MatrizInt.cpp:152