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