Вопрос: индексатор, свойства, перегруженные операции - C#
Формулировка задачи:
Создать класс «Vector» содержащий следующие члены класса:
1. Закрытое поле – массив элементов вещественного типа (координаты вектора в пространстве)
2. конструктор класса без параметра, создающий нулевой вектор;
3. конструктор класса с параметром – длиной массива;
4. индексатор для организации доступа к элементам массива
5. свойство для чтения числа координат вектора
6. метод, вычисляющий норму вектора (его длину);
7. публичные статические методы сложения двух векторов Plus, Minus (принимает в качестве параметра 2 объекта типа Vector, возвращает новый объект типа Vector)
8. публичный статический метод скалярного произведения двух векторов Scalar (принимает в качестве параметра 2 объекта типа Vector, возвращает вещественное число);
9. перегруженные операции «+» , «-» и «*».
10. Предусмотреть обработку исключений.
Сделал 1,2,3,6,7 и 8. Соответсвенно не могу сделать 4,5,9, и 10 вообще не представляю как.
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2massiv
{
class DlinaVector
{
public int[] vector; //поле,координаты вектора в пространстве
public int m;// длина массива
private double[] a;// массив элементов вещ. типа
public int n;
public DlinaVector()//констр. обнуляюущий вектор
{
n=3;
a = new double [n];
for (int i=1; i<=n; i++)
a[i]=0;
}
public DlinaVector(int n)//конструктор, с параметром - длинной массива,n - кол-во элементов массива
{
m = n;
a = new double[n];
}
public void Plus(DlinaVector A, DlinaVector B)//правильно ли?
{
for(int i=0; i<=n-1; i++)
a[i] = A.a[i] + B.a[i];
}
public void Minus(DlinaVector A, DlinaVector B)
{
for(int i=0; i<=n-1; i++)
a[i] = A.a[i] - B.a[i];
}
public void Scalar(DlinaVector A, DlinaVector B)
{
for(int i=0; i<=n-1; i++)
a[i] = A.a[i] * B.a[i];
}
public void GetNorm()
{
double dlina = 0;
for (int i = 0; i <= m - 1; i++)
{
dlina = dlina + Math.Pow(a[i], 2);
}
dlina = Math.Sqrt(dlina);
Console.WriteLine("Длина вектора ={0}", dlina);
}
}
}Решение задачи: «Вопрос: индексатор, свойства, перегруженные операции»
textual
Листинг программы
public int[] vector; //поле,координаты вектора в пространстве private double[] a; // массив элементов вещ. типа