ВУЗ:
Составители:
Рубрика:
55
// заполнение матрицы-результата
for (int i = 0; i < m1.a.GetLength(0); i++)
for (int j = 0; j < m2.a.GetLength(1); j++)
for(int k = 0; k < m1.a.GetLength(1); k++)
newM.a[i,j] += m1.a[i,k] * m2.a[k,j];
return newM;
}
else
{
// количество столбцов первой матрицы должно быть
// равно количеству строк второй матрицы
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;
}
Для перегрузки отдельных видов операций существуют особенности, о
которых требуется сказать отдельно.
При перегрузке операций сравнения обязательно в качестве типа
возвращаемого значения указывается тип bool. Кроме того, такие операции
перегружаются парно – операция "==" вместе с "!=", "<" вместе с ">",
"<=" вместе с ">=".
// заполнение матрицы-результата
for (int i = 0; i < m1.a.GetLength(0); i++)
for (int j = 0; j < m2.a.GetLength(1); j++)
for(int k = 0; k < m1.a.GetLength(1); k++)
newM.a[i,j] += m1.a[i,k] * m2.a[k,j];
return newM;
}
else
{
// количество столбцов первой матрицы должно быть
// равно количеству строк второй матрицы
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;
}
Для перегрузки отдельных видов операций существуют особенности, о
которых требуется сказать отдельно.
При перегрузке операций сравнения обязательно в качестве типа
возвращаемого значения указывается тип bool. Кроме того, такие операции
перегружаются парно – операция "==" вместе с "!=", "<" вместе с ">",
"<=" вместе с ">=".
55
Страницы
- « первая
- ‹ предыдущая
- …
- 53
- 54
- 55
- 56
- 57
- …
- следующая ›
- последняя »
