Объектно-ориентированное программирование на C++. Андрианова А.А - 216 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
public:
// конструктор СЛАУ с параметрами –
// количество уравнений и переменных
Slau(int, int);
// функция выбора метода решения СЛАУ
void Solve();
// функция, реализующая метод Крамера
void Kramer();
// функция, реализующая решение СЛАУ
// с помощью обратной матрицы
void InverseMatrix();
// функция получения общего решения СЛАУ
// методом Жордана-Гаусса
void JordanGauss();
// дружественные шаблоны функций,
// переопределяющие операции ввода/вывода СЛАУ
template <class T>
friend ostream& operator <<(ostream&, Slau<T>&);
template <class T>
friend istream& operator >>(istream&, Slau<T>&);
// метод вывода информации про решение СЛАУ
void PrintSolution(ostream&);
};
Определение методов шаблона класса Matrix и дружественных
функций:
// конструктор матрицы заданных размеров
template <class T> Matrix<T>::Matrix(int m1, int n1)
{
if(n1 <= 0 || m1 <= 0)
throw BadDimensionException();
n = n1;
m = m1;
a = new T* [m];
for(int i = 0; i < m; i++)
a[i] = new T [n];
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
a[i][j] = 0;
}
// конструктор «пустой» матрицы
template <class T> Matrix<T>::Matrix()
{
n = m = 0;
a = NULL;
}
216
                               Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
      public:
           // конструктор СЛАУ с параметрами –
           // количество уравнений и переменных
           Slau(int, int);
           // функция выбора метода решения СЛАУ
           void Solve();
           // функция, реализующая метод Крамера
           void Kramer();
           // функция, реализующая решение СЛАУ
           // с помощью обратной матрицы
           void InverseMatrix();
           // функция получения общего решения СЛАУ
           // методом Жордана-Гаусса
           void JordanGauss();
           // дружественные шаблоны функций,
           // переопределяющие операции ввода/вывода СЛАУ
           template 
                friend ostream& operator <<(ostream&, Slau&);
           template 
                friend istream& operator >>(istream&, Slau&);
           // метод вывода информации про решение СЛАУ
           void PrintSolution(ostream&);
      };

    Определение методов шаблона класса Matrix и дружественных
функций:
      // конструктор матрицы заданных размеров
      template  Matrix::Matrix(int m1, int n1)
      {
           if(n1 <= 0 || m1 <= 0)
                throw BadDimensionException();
           n = n1;
                m = m1;
           a = new T* [m];
           for(int i = 0; i < m; i++)
                a[i] = new T [n];
           for(int i = 0; i < m; i++)
                for(int j = 0; j < n; j++)
                     a[i][j] = 0;
      }

      // конструктор «пустой» матрицы
      template  Matrix::Matrix()
      {
           n = m = 0;
           a = NULL;
      }


216