Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 49 стр.

UptoLike

48
res[i, j] = a[i, j] - ob1[i, j];
return res;
}
// определение операции умножения двух матриц,
// раскрывающей метод интерфейса IMathObject
public IMathObject Multiply(IMathObject ob)
{
Matrix ob1 = ob as Matrix;
if (n != ob1.m)
throw new Exception("Такие матрицы перемножить нельзя");
Matrix res = new Matrix(m, ob1.n);
for (int i = 0; i < m; i++)
for (int j = 0; j < ob1.n; j++)
{
res[i, j] = 0;
for (int k = 0; k < n; k++)
res[i, j] = res[i, j] + a[i, k] * ob1[k, j];
}
return res;
}
// определение операции умножения матрицы на число,
// раскрывающей метод интерфейса IMathObject
public IMathObject Multiply(double chislo)
{
Matrix res = new Matrix(m, n);
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
res[i, j] = a[i, j] * chislo;
return res;
}
// индексатор для получения элементов матрицы по индексам
double this[int i, int j]
{
get { return a[i, j]; }
set { a[i, j] = value; }
}
// метод ввода матрицы
public void Input()
{
Console.WriteLine("Введите элементы матрицы");
for (int i = 0; i < m; i++)
{
string str = Console.ReadLine();
string [] s = str.Split(' ');
for (int j = 0; j < n; j++)
a[i, j] = double.Parse(s[j]);
}
          res[i, j] = a[i, j] - ob1[i, j];
    return res;
}

// определение операции умножения двух матриц,
// раскрывающей метод интерфейса IMathObject
public IMathObject Multiply(IMathObject ob)
{
   Matrix ob1 = ob as Matrix;
   if (n != ob1.m)
      throw new Exception("Такие матрицы перемножить нельзя");
   Matrix res = new Matrix(m, ob1.n);
   for (int i = 0; i < m; i++)
      for (int j = 0; j < ob1.n; j++)
      {
         res[i, j] = 0;
         for (int k = 0; k < n; k++)
            res[i, j] = res[i, j] + a[i, k] * ob1[k, j];
      }
   return res;
}

// определение операции умножения матрицы на число,
// раскрывающей метод интерфейса IMathObject
public IMathObject Multiply(double chislo)
{
   Matrix res = new Matrix(m, n);
   for (int i = 0; i < m; i++)
      for (int j = 0; j < n; j++)
         res[i, j] = a[i, j] * chislo;
   return res;
}

// индексатор для получения элементов матрицы по индексам
double this[int i, int j]
{
   get { return a[i, j]; }
   set { a[i, j] = value; }
}

// метод ввода матрицы
public void Input()
{
   Console.WriteLine("Введите элементы матрицы");
   for (int i = 0; i < m; i++)
   {
      string str = Console.ReadLine();
      string [] s = str.Split(' ');
      for (int j = 0; j < n; j++)
         a[i, j] = double.Parse(s[j]);
   }

                                                                 48