ВУЗ:
Составители:
Рубрика:
47
4.2. Раскрытие интерфейса для класса «Матрица»
Для раскрытия интерфейса требуется определить в классе Matrix все
методы, которые указаны в интерфейсе. Приведем код класса Matrix с
указанием переопределенных операций.
class Matrix : IMathObject
{
// количество строк и столбцов матрицы
protected int m, n;
// массив элементов матрицы
protected double[,] a;
// конструктор - осуществляет выделение
// памяти под хранение матрицы
public Matrix(int m1, int n1)
{
n = n1;
m = m1;
a = new double[m, n];
}
// определение операции сложения двух матриц,
// раскрывающей метод интерфейса IMathObject
public IMathObject Summa(IMathObject ob)
{
// приведение типа аргумента к классу Matrix
Matrix ob1 = ob as Matrix;
if (m != ob1.m || n != ob1.n)
throw new Exception("Сложение таких матриц невозможно");
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] + ob1[i, j];
return res;
}
// определение операции вычитания двух матриц,
// раскрывающей метод интерфейса IMathObject
public IMathObject Substract(IMathObject ob)
{
Matrix ob1 = ob as Matrix;
if (m != ob1.m || n != ob1.n)
throw new Exception("Вычитание таких
матриц невозможно");
Matrix res = new Matrix(m, n);
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
4.2. Раскрытие интерфейса для класса «Матрица» Для раскрытия интерфейса требуется определить в классе Matrix все методы, которые указаны в интерфейсе. Приведем код класса Matrix с указанием переопределенных операций. class Matrix : IMathObject { // количество строк и столбцов матрицы protected int m, n; // массив элементов матрицы protected double[,] a; // конструктор - осуществляет выделение // памяти под хранение матрицы public Matrix(int m1, int n1) { n = n1; m = m1; a = new double[m, n]; } // определение операции сложения двух матриц, // раскрывающей метод интерфейса IMathObject public IMathObject Summa(IMathObject ob) { // приведение типа аргумента к классу Matrix Matrix ob1 = ob as Matrix; if (m != ob1.m || n != ob1.n) throw new Exception("Сложение таких матриц невозможно"); 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] + ob1[i, j]; return res; } // определение операции вычитания двух матриц, // раскрывающей метод интерфейса IMathObject public IMathObject Substract(IMathObject ob) { Matrix ob1 = ob as Matrix; if (m != ob1.m || n != ob1.n) throw new Exception("Вычитание таких матриц невозможно"); Matrix res = new Matrix(m, n); for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) 47
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »