Guest User

Untitled

a guest
Apr 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. #ifndef MATRIZ_H
  2. #define MATRIZ_H
  3. #include "auxiliares.hpp"
  4.  
  5. using namespace std;
  6. using namespace aed2;
  7.  
  8. template<typename T>
  9. class Matriz{
  10. public:
  11. Matriz(Nat,Nat);
  12. ~Matriz();
  13. Nat filas();
  14. Nat columnas();
  15. bool def(Pos);
  16. const T& valor(Pos);
  17. void definir(Pos, const T&);
  18. bool pertenece(Pos);
  19.  
  20.  
  21. private:
  22. Nat _filas;
  23. Nat _columnas;
  24. Arreglo<Arreglo<T > > _posiciones;
  25.  
  26.  
  27. };
  28.  
  29. template<typename T>
  30. Matriz<T>::Matriz(Nat filas, Nat columnas){
  31. _filas = filas;
  32. _columnas = columnas;
  33. Arreglo< Arreglo<T > > af = Arreglo<Arreglo<T > >(filas);
  34. Arreglo<T > ac = Arreglo<T >(columnas);
  35. for(Nat i = 0; i < filas; i++){
  36. af.Definir(i, ac);
  37. }
  38. _posiciones = af;
  39. }
  40.  
  41. template<class T>
  42. Matriz<T>::~Matriz(){
  43.  
  44. }
  45.  
  46. template<typename T>
  47. Nat Matriz<T>::filas(){
  48. return _filas;
  49. }
  50.  
  51. template<typename T>
  52. Nat Matriz<T>::columnas(){
  53. return _columnas;
  54. }
  55. template<typename T>
  56. bool Matriz<T>::def(Pos pos){
  57. Nat fila = pos.first;
  58. Nat columna = pos.second;
  59.  
  60. return _posiciones[fila].Definido(columna);
  61. }
  62.  
  63. template<typename T>
  64. const T& Matriz<T>::valor(Pos pos){
  65. Nat fila = pos.first;
  66. Nat columna = pos.second;
  67.  
  68. return _posiciones[fila][columna];
  69. }
  70.  
  71. template<typename T>
  72. void Matriz<T>::definir(Pos pos, const T& valor){
  73. Nat fila = pos.first;
  74. Nat columna = pos.second;
  75.  
  76. _posiciones[fila].Definir(columna, valor);
  77.  
  78.  
  79. }
  80.  
  81. template<typename T>
  82. bool Matriz<T>::pertenece(Pos pos){
  83. Nat fila = pos.first;
  84. Nat columna = pos.second;
  85.  
  86. return fila < _filas && columna < _columnas;
  87.  
  88. }
  89.  
  90. #endif //MATRIZ_H
Add Comment
Please, Sign In to add comment