Resolucion de sistemas lineales
 All Classes Files Functions Variables Typedefs Macros Pages
Matriz_Base.hpp
Go to the documentation of this file.
1 // Clase para el trabajar con matrices //
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 __Matriz_Base__
32 #define __Matriz_Base__
33 
34 
35 #include "Definiciones.hpp"
36 #include "Ctrl_vis.hpp"
37 #include <stdio.h>
38 #include <stdlib.h>
39 
40 
41 #define MATRIZ_BANDADA 0
42 #define MATRIZ_DENSA 1
43 #define MATRIZ_ENTERA_DENSA 2
44 #define MATRIZ_DISPERSA 3
45 #define MATRIZ_BANDADA_COMPACTA 4
46 #define MATRIZ_DISPERSA_COMPACTA 5
47 #define MATRIZ_TAMANO_VARIABLE 6
48 #define MATRIZ_RALA 7
49 
50 
52 
58 {
59 
60 protected:
62  int Col;
64  int Ren;
66  int Ban;
68  char *Nmb;
71 
72 
73 
74 public:
75 
78  {
79  Nmb = NULL;
80  Ban = 0;
81  }
82 
85  {
86  delete []Nmb;
87  Nmb = NULL;
88  }
89 
91 
92  void asignaNombre(const char *nmb);
93 
95 
96  inline char *nombre(void)
97  {
98  return Nmb;
99  }
100 
102 
103  inline int renglones(void)
104  {
105  return Ren;
106  }
107 
109 
110  inline int columnas(void)
111  {
112  return Col;
113  }
114 
116 
117  inline int matrizCuadrada(void)
118  {
119  return (Col == Ren ? 1: 0);
120  }
121 
123 
125  {
126  if (a->columnas() == Col && a->renglones() == Ren) return 1;
127  return 0;
128  }
129 
131 
132  inline int retornaTipoMatriz(void)
133  {
134  return Tipo_Matriz;
135  }
136 
138  void faltaMemoria(void)
139  {
140  printf("\nError no hay memoria para la matriz\n");
141  exit(1);
142  }
143 
145  void visualizaInformacion(void);
146 
148 
149  ldouble tamano(void);
150 
152  void visualizaTamano(void);
153 
155 
156  virtual int maximoTamanoColumnaOcupado(void) = 0;
157 
159 
160  virtual int entradasDistintasCero(void) = 0;
161 
163  virtual void liberaMemoria(void) = 0;
164 
165 
166 };
167 
168 #endif
int renglones(void)
Retorna el número de renglones de la matriz.
Definition: Matriz_Base.hpp:103
int mismaDimension(Matriz_Base *a)
Revisa si ambas matrices tienen la misma dimensión
Definition: Matriz_Base.hpp:124
char * nombre(void)
Retorna el nombre de la matriz.
Definition: Matriz_Base.hpp:96
ldouble tamano(void)
Tamaño de la matriz (aproximado) en Kb.
Definition: Matriz_Base.cpp:67
int Ban
Tamaño de la banda (solo si es bandada o dispersa)
Definition: Matriz_Base.hpp:66
int Ren
Número de renglones.
Definition: Matriz_Base.hpp:64
int Tipo_Matriz
Indica el tipo de matriz de que se trate.
Definition: Matriz_Base.hpp:70
double ldouble
Define ldouble como double.
Definition: Definiciones.hpp:50
int columnas(void)
Retorna el número de columnas de la matriz.
Definition: Matriz_Base.hpp:110
void visualizaTamano(void)
Visualiza el tamaño en memoria de la matriz en Kb.
Definition: Matriz_Base.cpp:85
void visualizaInformacion(void)
Visualiza información general de la matriz.
Definition: Matriz_Base.cpp:56
~Matriz_Base()
Destructor de la clase.
Definition: Matriz_Base.hpp:84
virtual int maximoTamanoColumnaOcupado(void)=0
Retorna el máximo tamaño en todas las columnas que sean distintos de cero.
virtual int entradasDistintasCero(void)=0
Retorna el número de entradas distintas de cero en la matriz.
int retornaTipoMatriz(void)
Retorna el tipo de matriz.
Definition: Matriz_Base.hpp:132
void asignaNombre(const char *nmb)
Asigna nombre a la matriz.
Definition: Matriz_Base.cpp:42
int Col
Número de columnas.
Definition: Matriz_Base.hpp:62
void faltaMemoria(void)
Visualiza el error de falta de memoria para soportar la matriz.
Definition: Matriz_Base.hpp:138
Clase base para el trabajar con matrices.
Definition: Matriz_Base.hpp:57
int matrizCuadrada(void)
Es una matriz cuadrada.
Definition: Matriz_Base.hpp:117
Matriz_Base(void)
Constructor de la clase.
Definition: Matriz_Base.hpp:77
virtual void liberaMemoria(void)=0
Libera la memoria solicitada para la matriz.
char * Nmb
Nombre de la matriz.
Definition: Matriz_Base.hpp:68