Объектно-ориентированное программирование на С#. Андрианова А.А - 86 стр.

UptoLike

86
// метод вывода матрицы
public void OutputMatrix()
{
int rows = Rows, cols = Cols;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
Console.Write("{0, 4:f2} ", a[i, j]);
Console.WriteLine();
}
}
// свойство получения количества строк матрицы
public int Rows
{
get { return a.GetLength(0); }
}
// свойство получения количества столбцов матрицы
public int Cols
{
get { return a.GetLength(1); }
}
// индексатор для доступа к элементам матрицы
public double this[int i, int j]
{
get
{
int rows = Rows, cols = Cols;
// проверяется корректность индексов
if (i < 0 || i >= rows || j < 0 || j >= cols)
throw new Exception("Индексы выходят из
диапазона");
return a[i, j];
}
set
{
int rows = Rows, cols = Cols;
// проверяется корректность индексов
if (i < 0 || i >= rows || j < 0 || j >= cols)
throw new Exception("Индексы выходят из
диапазона");
a[i, j] = value;
}
}
// операция сложения двух матриц
static public Matrix operator +(Matrix m1, Matrix m2)
{
int rows1 = m1.Rows, cols1 = m1.Cols,
rows2 = m2.Rows, cols2=m2.Cols;
     // метод вывода матрицы
     public void OutputMatrix()
     {
        int rows = Rows, cols = Cols;
        for (int i = 0; i < rows; i++)
        {
           for (int j = 0; j < cols; j++)
              Console.Write("{0, 4:f2} ", a[i, j]);
           Console.WriteLine();
        }
     }

     // свойство получения количества строк матрицы
     public int Rows
     {
        get { return a.GetLength(0); }
     }

     // свойство получения количества столбцов матрицы
     public int Cols
     {
        get { return a.GetLength(1); }
     }

     // индексатор для доступа к элементам матрицы
     public double this[int i, int j]
     {
        get
        {
            int rows = Rows, cols = Cols;
            // проверяется корректность индексов
            if (i < 0 || i >= rows || j < 0 || j >= cols)
               throw new Exception("Индексы выходят из
                                                 диапазона");
            return a[i, j];
        }
        set
        {
            int rows = Rows, cols = Cols;
            // проверяется корректность индексов
            if (i < 0 || i >= rows || j < 0 || j >= cols)
               throw new Exception("Индексы выходят из
                                                 диапазона");
            a[i, j] = value;
        }
     }

     // операция сложения двух матриц
     static public Matrix operator +(Matrix m1, Matrix m2)
     {
        int rows1 = m1.Rows, cols1 = m1.Cols,
              rows2 = m2.Rows, cols2=m2.Cols;

86