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

UptoLike

53
throw new Exception("Матрицы таких размеров
перемножать нельзя");
}
}
// операция умножения матрицы на число
static public Matrix operator *(Matrix m, double d)
{
// создание матрицы-результата
Matrix newM = new Matrix(m.a.GetLength(0),
m.a.GetLength(1));
// заполнение матрицы-результата
for (int i = 0; i < m.a.GetLength(0); i++)
for (int j = 0; j < m.a.GetLength(1); j++)
newM.a[i,j] = m.a[i,j] * d;
return newM;
}
// операция умножения числа и матрицы
static public Matrix operator *(double d, Matrix m)
{
// создание матрицы-результата
Matrix newM = new Matrix(m.a.GetLength(0),
m.a.GetLength(1));
// заполнение матрицы-результата
newM = m * d;
return newM;
}
// другие операции и методы
. . .
}
class Program
{
static void Main(string[] args)
{
Matrix x, y, z;
x = new Matrix(2, 3);
y = new Matrix(3, 4);
x.InputMatrix();
y.InputMatrix();
x.OutputMatrix();
y.OutputMatrix();
z = ~x; // траспонирование матрицы
z.OutputMatrix();
z = x * 5.0; // умножение матрицы на число
z.OutputMatrix();
z = 2.5 * y; // умножение числа на матрицу
                throw new Exception("Матрицы таких размеров
                                          перемножать нельзя");
            }
        }

        // операция умножения матрицы на число
        static public Matrix operator *(Matrix m, double d)
        {
           // создание матрицы-результата
           Matrix newM = new Matrix(m.a.GetLength(0),
                                     m.a.GetLength(1));
           // заполнение матрицы-результата
           for (int i = 0; i < m.a.GetLength(0); i++)
              for (int j = 0; j < m.a.GetLength(1); j++)
                 newM.a[i,j] = m.a[i,j] * d;
           return newM;
        }

        // операция умножения числа и матрицы
        static public Matrix operator *(double d, Matrix m)
        {
           // создание матрицы-результата
           Matrix newM = new Matrix(m.a.GetLength(0),
                                    m.a.GetLength(1));
           // заполнение матрицы-результата
           newM = m * d;
           return newM;
        }
        // другие операции и методы
    .    .    .
}

class Program
{
   static void Main(string[] args)
   {
      Matrix x, y, z;
      x = new Matrix(2, 3);
      y = new Matrix(3, 4);

        x.InputMatrix();
        y.InputMatrix();

        x.OutputMatrix();
        y.OutputMatrix();

        z = ~x;         // траспонирование матрицы
        z.OutputMatrix();

        z = x * 5.0;    // умножение матрицы на число
        z.OutputMatrix();

        z = 2.5 * y;     // умножение числа на матрицу
                                                                  53