|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.04.2010, 23:53 | #1 |
Пользователь
Регистрация: 24.03.2010
Сообщений: 12
|
класс массивов
Условие:
Составить описание класса для определения одномерных массивов целых чисел (векторов). Предусмотреть возможность обращения к отдельному элементу массива с контролем выхода за пределы массива, возможность задания произвольных границ индексов при создании объекта, и выполнения операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов, умножения и деления всех элементов массива на скаляр, вывода на экран элемента массива по заданному индексу и всего массива. { class Vector { private const string WRONG_INDICES = "Все векторы должны иметь идентичные индексы."; private int hIndex; private int nIndex; private int kIndex; public int[] vector; public Vector(int Index,int StartIndex, int konecIndex)// конструктор класса { hIndex = Index; nIndex = StartIndex; kIndex = konecIndex; vector = new int[Index]; } public int StartIndex { //код доступа get { return nIndex; } set {nIndex = value; } } public int konecIndex { //код доступа get { return kIndex; } set { kIndex = value; } } public int Index { get { return hIndex; } } public int this[int NumOfElement]// индексатор { get { if (NumOfElement >= hIndex) { throw new IndexOutOfRangeException();// исключение } else return vector[NumOfElement]; } set { if (NumOfElement >= hIndex) { throw new IndexOutOfRangeException(); } else vector[NumOfElement] = value; } } //Сложение векторов public static Vector operator + (Vector x,Vector y)// определение операции + { if (x.Index != y.Index) { //throw new Exception("Error") ; throw new ArgumentException(WRONG_INDICES);// исключение } else { Vector temp = new Vector(x.Index); for (int i = 0; i < temp.Index; i++) { temp[i] = x[i] + y[i]; } return temp; } } //Вычитание векторов public static Vector operator -(Vector x, Vector y)//определение операции - { if (x.Index != y.Index) { //throw new Exception("Error"); throw new ArgumentException(WRONG_INDICES);// исключение } else { Vector temp = new Vector(x.Index); for (int i = 0; i < temp.Index; i++) { temp[i] = x[i] - y[i]; } return temp; } } //Деление на скаляр public static Vector operator /(Vector x, double s)// определение операции / { Vector temp = new Vector(x.Index); for (int i = 0; i < temp.Index; i++) { temp[i] = x[i] /s; } return temp; } //Умножение на скаляр public static Vector operator *(Vector x, double s)// определение операции* { Vector temp = new Vector(x.Index); for (int i = 0; i < temp.Index; i++) { temp[i] = x[i] *s; } return temp; } public void Print(int NumOfElement)//метод print вывод на экран { Console.Write(vector[NumOfElement]); } public void Print() { for(int i=0;i<hIndex;i++) Console.Write(vector[i] + " "); } } } Не пойму в чем ошибка....Пожалуйста подскажите что исправить!! Заранее Спасибо! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Класс | Chartvit | Visual C++ | 2 | 05.01.2011 22:20 |
КЛАСС | 4ika | Общие вопросы C/C++ | 1 | 16.03.2010 21:32 |
C++ . Класс | Ануар56 | Помощь студентам | 8 | 23.04.2009 19:41 |
Класс | Юлёк | Фриланс | 6 | 15.06.2008 15:00 |