Вопрос: индексатор, свойства, перегруженные операции - 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;  // массив элементов вещ. типа

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5