ВУЗ:
Составители:
Рубрика:
52
for (int j = 0; j < a.GetLength(1); j++)
a[i, j] = (double)r.Next(100);
}
// метод преобразования матрицы в строку
public override string ToString()
{
string s = null;
for (int i = 0; i < a.GetLength(0); i++, s += "\n")
for (int j = 0; j < a.GetLength(1); j++)
s += a[i, j] + " ";
return s;
}
// метод вывода матрицы
public void OutputMatrix()
{
string s = this.ToString();
Console.WriteLine(s);
}
// метод, перегружающий операцию
// траспонирования матрицы
static public Matrix operator ~(Matrix m)
{
Matrix newM = new Matrix( m.a.GetLength(1),
m.a.GetLength(0));
for (int i = 0; i < m.a.GetLength(0); i++)
for (int j = 0; j < m.a.GetLength(1); j++)
newM.a[j, i] = m.a[i, j];
return newM;
}
// операция перемножения двух матриц
static public Matrix operator *(Matrix m1, Matrix m2)
{
if(m1.a.GetLength(1) == m2.a.GetLength(0))
{
// создание матрицы-результата
Matrix newM = new Matrix(m1.a.GetLength(0),
m2.a.GetLength(1));
// заполнение матрицы-результата
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
{
// количество столбцов первой матрицы должно быть
// равно количеству строк второй матрицы
for (int j = 0; j < a.GetLength(1); j++)
a[i, j] = (double)r.Next(100);
}
// метод преобразования матрицы в строку
public override string ToString()
{
string s = null;
for (int i = 0; i < a.GetLength(0); i++, s += "\n")
for (int j = 0; j < a.GetLength(1); j++)
s += a[i, j] + " ";
return s;
}
// метод вывода матрицы
public void OutputMatrix()
{
string s = this.ToString();
Console.WriteLine(s);
}
// метод, перегружающий операцию
// траспонирования матрицы
static public Matrix operator ~(Matrix m)
{
Matrix newM = new Matrix( m.a.GetLength(1),
m.a.GetLength(0));
for (int i = 0; i < m.a.GetLength(0); i++)
for (int j = 0; j < m.a.GetLength(1); j++)
newM.a[j, i] = m.a[i, j];
return newM;
}
// операция перемножения двух матриц
static public Matrix operator *(Matrix m1, Matrix m2)
{
if(m1.a.GetLength(1) == m2.a.GetLength(0))
{
// создание матрицы-результата
Matrix newM = new Matrix(m1.a.GetLength(0),
m2.a.GetLength(1));
// заполнение матрицы-результата
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
{
// количество столбцов первой матрицы должно быть
// равно количеству строк второй матрицы
52
Страницы
- « первая
- ‹ предыдущая
- …
- 50
- 51
- 52
- 53
- 54
- …
- следующая ›
- последняя »
